fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/42404?usp=email )
Change subject: socket: osmo_sockaddr_from_str_and_uint(): fix memleak ......................................................................
socket: osmo_sockaddr_from_str_and_uint(): fix memleak
`addrinfo_helper()` internally calls `getaddrinfo()`, whose result must be freed with `freeaddrinfo()`. On the size-check error path the function returns early without freeing. Fix this.
Change-Id: Ib05e1b8f2465e0db79e7b45de151dc9945e27924 --- M src/core/socket.c 1 file changed, 3 insertions(+), 1 deletion(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved
diff --git a/src/core/socket.c b/src/core/socket.c index 6cd82f0..3a2d7b7 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -1762,8 +1762,10 @@ if (!ai) return -EIO;
- if (ai->ai_addrlen > sizeof(*osa_out)) + if (ai->ai_addrlen > sizeof(*osa_out)) { + freeaddrinfo(ai); return -ENOSPC; + }
memcpy(&osa_out->u.sa, ai->ai_addr, ai->ai_addrlen); freeaddrinfo(ai);