mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 16:47:18 +02:00
BUG/MINOR: cli: Fix memory leak on error for _getsocks command
Some errors in parse function of _getsocks commands were not properly handled and immediately returned, leading to a memory leak on cmsgbuf and tmpbuf buffers. To fix the issue, instead of immediately return with -1, we jump to "out" label. Returning 1 intead of -1 in that case is valid. This was reported by Coverity in #2841: CIDs 1587773 and 1587772. This patch should be backported as far as 2.4.
This commit is contained in:
parent
7e927243b9
commit
372cc696d4
@ -2407,7 +2407,7 @@ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *pr
|
|||||||
iov.iov_len = curoff;
|
iov.iov_len = curoff;
|
||||||
if (sendmsg(fd, &msghdr, 0) != curoff) {
|
if (sendmsg(fd, &msghdr, 0) != curoff) {
|
||||||
ha_warning("Failed to transfer sockets\n");
|
ha_warning("Failed to transfer sockets\n");
|
||||||
return -1;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Wait for an ack */
|
/* Wait for an ack */
|
||||||
@ -2417,7 +2417,7 @@ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *pr
|
|||||||
|
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
ha_warning("Unexpected error while transferring sockets\n");
|
ha_warning("Unexpected error while transferring sockets\n");
|
||||||
return -1;
|
goto out;
|
||||||
}
|
}
|
||||||
curoff = 0;
|
curoff = 0;
|
||||||
nb_queued = 0;
|
nb_queued = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user