From: Stefan Metzmacher Date: Tue, 9 Feb 2021 15:09:59 +0000 (+0100) Subject: swrap: don't touch msg_tmp in swrap_recvmsg_after_unix() on error X-Git-Tag: socket_wrapper-1.3.2~2 X-Git-Url: http://git.samba.org/?p=socket_wrapper.git;a=commitdiff_plain;h=db594f106d9737e0415a268439fc9003bb636473 swrap: don't touch msg_tmp in swrap_recvmsg_after_unix() on error Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider --- diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c index 6a63530..59fb07d 100644 --- a/src/socket_wrapper.c +++ b/src/socket_wrapper.c @@ -6021,6 +6021,16 @@ static ssize_t swrap_recvmsg_after_unix(struct msghdr *msg_tmp, size_t cm_data_space = 0; int rc = -1; + if (ret < 0) { + int saved_errno = errno; + SWRAP_LOG(SWRAP_LOG_TRACE, "ret=%zd - %d - %s", ret, + saved_errno, strerror(saved_errno)); + SAFE_FREE(*tmp_control); + /* msg_out should not be touched on error */ + errno = saved_errno; + return ret; + } + SWRAP_LOG(SWRAP_LOG_TRACE, "msg_tmp->msg_controllen=%zu", (size_t)msg_tmp->msg_controllen);