[git commit] test: memory leak: free group id list

Denys Vlasenko vda.linux at googlemail.com
Sat Oct 1 23:49:13 UTC 2016


commit: https://git.busybox.net/busybox/commit/?id=de89205bdf419e68beece4e205af40e3d81f01ef
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/test.c |  1 +
 shell/ash.c      | 12 +++++-------
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/coreutils/test.c b/coreutils/test.c
index 7b8b10c..afdb141 100644
--- a/coreutils/test.c
+++ b/coreutils/test.c
@@ -394,6 +394,7 @@ extern struct test_statics *const test_ptr_to_statics;
 	barrier(); \
 } while (0)
 #define DEINIT_S() do { \
+	free(S.group_array); \
 	free(test_ptr_to_statics); \
 } while (0)
 
diff --git a/shell/ash.c b/shell/ash.c
index b816043..731c4b2 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -412,8 +412,6 @@ static void trace_vprintf(const char *fmt, va_list va);
 
 
 /* ============ Utility functions */
-#define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0)
-
 #define is_name(c)      ((c) == '_' || isalpha((unsigned char)(c)))
 #define is_in_name(c)   ((c) == '_' || isalnum((unsigned char)(c)))
 
@@ -446,7 +444,7 @@ static void exitshell(void) NORETURN;
  */
 #define INT_OFF do { \
 	suppress_int++; \
-	xbarrier(); \
+	barrier(); \
 } while (0)
 
 /*
@@ -516,7 +514,7 @@ raise_interrupt(void)
 static IF_ASH_OPTIMIZE_FOR_SIZE(inline) void
 int_on(void)
 {
-	xbarrier();
+	barrier();
 	if (--suppress_int == 0 && pending_int) {
 		raise_interrupt();
 	}
@@ -525,7 +523,7 @@ int_on(void)
 static IF_ASH_OPTIMIZE_FOR_SIZE(inline) void
 force_int_on(void)
 {
-	xbarrier();
+	barrier();
 	suppress_int = 0;
 	if (pending_int)
 		raise_interrupt();
@@ -535,7 +533,7 @@ force_int_on(void)
 #define SAVE_INT(v) ((v) = suppress_int)
 
 #define RESTORE_INT(v) do { \
-	xbarrier(); \
+	barrier(); \
 	suppress_int = (v); \
 	if (suppress_int == 0 && pending_int) \
 		raise_interrupt(); \
@@ -8432,7 +8430,7 @@ dotrap(void)
 
 	last_status = exitstatus;
 	pending_sig = 0;
-	xbarrier();
+	barrier();
 
 	TRACE(("dotrap entered\n"));
 	for (sig = 1, g = gotsig; sig < NSIG; sig++, g++) {


More information about the busybox-cvs mailing list