Memory leak in error cases. CID 737.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25646 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-05-24 16:29:53 +00:00
parent d2e55e94c0
commit 5839058aa9
+6 -2
View File
@@ -583,10 +583,14 @@ KMessage::ReceiveFrom(port_id fromPort, bigtime_t timeout,
int32 what;
ssize_t realSize = read_port_etc(fromPort, &what, buffer, messageInfo->size,
B_RELATIVE_TIMEOUT, 0);
if (realSize < 0)
if (realSize < 0) {
free(buffer);
return realSize;
if (messageInfo->size != (size_t)realSize)
}
if (messageInfo->size != (size_t)realSize) {
free(buffer);
return B_ERROR;
}
// init the message
return SetTo(buffer, messageInfo->size, 0,