[git commit] wget: if FEATURE_CLEAN_UP, free(ptr_to_globals)

Denys Vlasenko vda.linux at googlemail.com
Wed Oct 16 12:43:30 UTC 2013


commit: http://git.busybox.net/busybox/commit/?id=840ef17f63c85044c15d9a38a13c6539e26dfc31
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>
---
 include/libbb.h   |    5 +++++
 networking/wget.c |    8 ++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/include/libbb.h b/include/libbb.h
index 3ab1d6b..c965461 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1773,6 +1773,11 @@ extern struct globals *const ptr_to_globals;
 	(*(struct globals**)&ptr_to_globals) = (void*)(x); \
 	barrier(); \
 } while (0)
+#define FREE_PTR_TO_GLOBALS() do { \
+	if (ENABLE_FEATURE_CLEAN_UP) { \
+		free(ptr_to_globals); \
+	} \
+} while (0)
 
 /* You can change LIBBB_DEFAULT_LOGIN_SHELL, but don't use it,
  * use bb_default_login_shell and following defines.
diff --git a/networking/wget.c b/networking/wget.c
index a32f852..cfbacec 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -89,6 +89,9 @@ struct globals {
 #define INIT_G() do { \
 	SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
 } while (0)
+#define FINI_G() do { \
+	FREE_PTR_TO_GLOBALS(); \
+} while (0)
 
 
 /* Must match option string! */
@@ -1013,5 +1016,10 @@ int wget_main(int argc UNUSED_PARAM, char **argv)
 	if (G.output_fd >= 0)
 		xclose(G.output_fd);
 
+#if ENABLE_FEATURE_CLEAN_UP && ENABLE_FEATURE_WGET_LONG_OPTIONS
+	free(G.extra_headers);
+#endif
+	FINI_G();
+
 	return EXIT_SUCCESS;
 }


More information about the busybox-cvs mailing list