On 20 March 2013 02:14:39 [email protected] wrote:
From: Guilherme Maciel Ferreira <[email protected]>
Signed-off-by: Guilherme Maciel Ferreira <[email protected]>
---
include/libbb.h | 5 +++++
networking/wget.c | 14 ++++++++++++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/include/libbb.h b/include/libbb.h
index 0690dca..25dc146 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1763,6 +1763,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 && ptr_to_globals) { \
free(NULL) is perfectly valid.
+ 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 4eafebe..6e18835 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -86,10 +86,12 @@ struct globals {
} FIX_ALIASING;
#define G (*ptr_to_globals)
#define INIT_G() do { \
- SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
+ SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
IF_FEATURE_WGET_TIMEOUT(G.timeout_seconds = 900;) \
What does the change above do?
} while (0)
-
+#define FINISH_G() do { \
I'd prefer FINI_G(). init/fini is a commonly used pair.
+ FREE_PTR_TO_GLOBALS(); \
+} while(0)
/* Must match option string! */
enum {
@@ -987,5 +989,13 @@ int wget_main(int argc UNUSED_PARAM, char **argv)
if (G.output_fd >= 0)
xclose(G.output_fd);
+#if ENABLE_FEATURE_WGET_LONG_OPTIONS
+ if (ENABLE_FEATURE_CLEAN_UP && G.extra_headers) {
The idea behind these ENABLE defines was to increase preprocessor
coverage. You should likely move the condition from CPP to c.
Thanks,
+ free(G.extra_headers);
+ }
+#endif
+
+ FINISH_G();
+
return EXIT_SUCCESS;
}
--
1.7.0.4
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox
Sent with AquaMail for Android
http://www.aqua-mail.com
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox