Opened 13 years ago
Closed 12 years ago
#3474 closed Bugs (fixed)
Memory leak due to exception safety issue
Reported by: | Owned by: | Beman Dawes | |
---|---|---|---|
Milestone: | To Be Determined | Component: | system |
Version: | Boost 1.35.0 | Severity: | Problem |
Keywords: | Cc: |
Description
The following code fragment form file 'libs/filesystem/src/exception.cpp' may leak memory if an exception is thrown while assigning 'lpMsgBuf' to 'target':
void system_message(system_error_type sys_err_code, std::string& target) { LPVOID lpMsgBuf; ::FormatMessageA( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, sys_err_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPSTR) &lpMsgBuf, 0, NULL ); target += static_cast<LPCSTR>(lpMsgBuf); ::LocalFree( lpMsgBuf ); // free the buffer //...
Change History (3)
comment:1 by , 13 years ago
Milestone: | Boost 1.41.0 → To Be Determined |
---|---|
Version: | Boost 1.40.0 → Boost 1.35.0 |
comment:2 by , 12 years ago
Component: | filesystem → system |
---|
comment:3 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed. See changeset 63184
Thanks,
--Beman
Note:
See TracTickets
for help on using tickets.
As of boost 1.42.0, there are no calls to "FormatMessageA" in boost filesystem. There is similar code in the Boost.System library, though. Reassigning; Beman will squawk if I'm wrong. File: libs/system/src/error_code.cpp