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:
@@ -583,10 +583,14 @@ KMessage::ReceiveFrom(port_id fromPort, bigtime_t timeout,
|
|||||||
int32 what;
|
int32 what;
|
||||||
ssize_t realSize = read_port_etc(fromPort, &what, buffer, messageInfo->size,
|
ssize_t realSize = read_port_etc(fromPort, &what, buffer, messageInfo->size,
|
||||||
B_RELATIVE_TIMEOUT, 0);
|
B_RELATIVE_TIMEOUT, 0);
|
||||||
if (realSize < 0)
|
if (realSize < 0) {
|
||||||
|
free(buffer);
|
||||||
return realSize;
|
return realSize;
|
||||||
if (messageInfo->size != (size_t)realSize)
|
}
|
||||||
|
if (messageInfo->size != (size_t)realSize) {
|
||||||
|
free(buffer);
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
// init the message
|
// init the message
|
||||||
return SetTo(buffer, messageInfo->size, 0,
|
return SetTo(buffer, messageInfo->size, 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user