From: Zongmin Zhou Date: Mon, 1 Sep 2025 05:45:57 +0000 (+0800) Subject: selftests: net: avoid memory leak X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b0bc64512295f6a613fab42452bd7e2cf72c6b61;p=users%2Fhch%2Fmisc.git selftests: net: avoid memory leak The buffer be used without free,fix it to avoid memory leak. Signed-off-by: Zongmin Zhou Reviewed-by: Simon Horman Link: https://patch.msgid.link/20250901054557.32811-1-min_halo@163.com Signed-off-by: Jakub Kicinski --- diff --git a/tools/testing/selftests/net/cmsg_sender.c b/tools/testing/selftests/net/cmsg_sender.c index a825e628aee7..ded9b925865e 100644 --- a/tools/testing/selftests/net/cmsg_sender.c +++ b/tools/testing/selftests/net/cmsg_sender.c @@ -491,7 +491,8 @@ int main(int argc, char *argv[]) if (err) { fprintf(stderr, "Can't resolve address [%s]:%s\n", opt.host, opt.service); - return ERN_SOCK_CREATE; + err = ERN_SOCK_CREATE; + goto err_free_buff; } if (ai->ai_family == AF_INET6 && opt.sock.proto == IPPROTO_ICMP) @@ -500,8 +501,8 @@ int main(int argc, char *argv[]) fd = socket(ai->ai_family, opt.sock.type, opt.sock.proto); if (fd < 0) { fprintf(stderr, "Can't open socket: %s\n", strerror(errno)); - freeaddrinfo(ai); - return ERN_RESOLVE; + err = ERN_RESOLVE; + goto err_free_info; } if (opt.sock.proto == IPPROTO_ICMP) { @@ -574,6 +575,9 @@ int main(int argc, char *argv[]) err_out: close(fd); +err_free_info: freeaddrinfo(ai); +err_free_buff: + free(buf); return err; }