[git commit] traceroute: free some memory allocated by xzalloc()

Denys Vlasenko vda.linux at googlemail.com
Fri Mar 15 00:23:48 UTC 2013


commit: http://git.busybox.net/busybox/commit/?id=4a600f8777f3fa0f673b47ccc8a0ba9cf6634249
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira at gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/traceroute.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/networking/traceroute.c b/networking/traceroute.c
index 6b7b2eb..0c18d6c 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -805,6 +805,7 @@ common_traceroute_main(int op, char **argv)
 	char *waittime_str;
 	char *pausemsecs_str;
 	char *first_ttl_str;
+	char *dest_str;
 #if ENABLE_FEATURE_TRACEROUTE_SOURCE_ROUTE
 	llist_t *source_route_list = NULL;
 	int lsrr = 0;
@@ -1059,8 +1060,12 @@ common_traceroute_main(int op, char **argv)
 	xsetgid(getgid());
 	xsetuid(getuid());
 
-	printf("traceroute to %s (%s)", argv[0],
-			xmalloc_sockaddr2dotted_noport(&dest_lsa->u.sa));
+	dest_str = xmalloc_sockaddr2dotted_noport(&dest_lsa->u.sa);
+	printf("traceroute to %s (%s)", argv[0], dest_str);
+	if (ENABLE_FEATURE_CLEAN_UP) {
+		free(dest_str);
+	}
+
 	if (op & OPT_SOURCE)
 		printf(" from %s", source);
 	printf(", %d hops max, %d byte packets\n", max_ttl, packlen);
@@ -1216,6 +1221,12 @@ common_traceroute_main(int op, char **argv)
 		}
 	}
 
+	if (ENABLE_FEATURE_CLEAN_UP) {
+		free(to);
+		free(lastaddr);
+		free(from_lsa);
+	}
+
 	return 0;
 }
 


More information about the busybox-cvs mailing list