diff options
| author | Rene Gollent <anevilyak@gmail.com> | 2012-07-14 11:24:22 -0400 |
|---|---|---|
| committer | Rene Gollent <anevilyak@gmail.com> | 2012-07-14 11:24:22 -0400 |
| commit | c163f973e6a96a2c37d70cc1992f2bb027f9ab81 (patch) | |
| tree | e068b8640e7c00a75d4a7acc58ce49c7787961ba | |
| parent | 2a8e9bb83d29cb06a5846ddc42fa1606d831a597 (diff) | |
Fix resource leak in error cases. CID 611238.hrev44337
| -rw-r--r-- | src/apps/debugger/value/value_nodes/BMessageValueNode.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp b/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp index 8316d6e8dc..b805a35332 100644 --- a/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp +++ b/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp @@ -281,6 +281,9 @@ BMessageValueNode::ResolvedLocationAndValue(ValueLoader* valueLoader, uint8* messageBuffer = new(std::nothrow) uint8[totalSize]; if (messageBuffer == NULL) return B_NO_MEMORY; + + ArrayDeleter<uint8> deleter(messageBuffer); + memset(messageBuffer, 0, totalSize); memcpy(messageBuffer, fHeader, sizeof(BMessage::message_header)); uint8* tempBuffer = messageBuffer + sizeof(BMessage::message_header); @@ -313,7 +316,6 @@ BMessageValueNode::ResolvedLocationAndValue(ValueLoader* valueLoader, } error = fMessage.Unflatten((const char*)messageBuffer); - delete[] messageBuffer; if (error != B_OK) return error; |
