From 1f8fe835b51773dc2236c428d2cde905127e4b09 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 8 May 2014 14:04:11 +0200 Subject: [PATCH] swrap: Do not leak memory in swrap_recvmsg_after(). Signed-off-by: Andreas Schneider Reviewed-by: Jakub Hrozek Reviewed-by: Simo Sorce --- lib/socket_wrapper/socket_wrapper.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c index c5b1fdf85e0..5ed9d9fa730 100644 --- a/lib/socket_wrapper/socket_wrapper.c +++ b/lib/socket_wrapper/socket_wrapper.c @@ -3155,7 +3155,7 @@ static int swrap_recvmsg_after(int fd, { int saved_errno = errno; size_t i; - uint8_t *buf; + uint8_t *buf = NULL; off_t ofs = 0; size_t avail = 0; size_t remain; @@ -3187,7 +3187,7 @@ static int swrap_recvmsg_after(int fd, /* we capture it as one single packet */ buf = (uint8_t *)malloc(remain); - if (!buf) { + if (buf == NULL) { /* we just not capture the packet */ errno = saved_errno; return -1; @@ -3228,7 +3228,7 @@ static int swrap_recvmsg_after(int fd, msg->msg_name, &msg->msg_namelen); if (rc == -1) { - return -1; + goto done; } swrap_dump_packet(si, @@ -3247,6 +3247,7 @@ static int swrap_recvmsg_after(int fd, break; } +done: free(buf); errno = saved_errno; return 0; -- 2.11.4.GIT