From 5839058aa9b793b3693422562f663a9147c25ca7 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 24 May 2008 16:29:53 +0000 Subject: [PATCH] Memory leak in error cases. CID 737. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25646 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/messaging/KMessage.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/messaging/KMessage.cpp b/src/system/kernel/messaging/KMessage.cpp index 26f5bb3ece..10a31abf9f 100644 --- a/src/system/kernel/messaging/KMessage.cpp +++ b/src/system/kernel/messaging/KMessage.cpp @@ -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,