diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-02 01:49:13 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-02 01:49:13 +0200 |
commit | de89205bdf419e68beece4e205af40e3d81f01ef (patch) | |
tree | 288ad57b06a33dbb0d0bde90d60ba4b5997a7cd7 | |
parent | ff59b7b112e5dd9a69e138aa01b91d76c8b04be6 (diff) | |
download | busybox-de89205bdf419e68beece4e205af40e3d81f01ef.tar.gz |
test: memory leak: free group id list
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | coreutils/test.c | 1 | ||||
-rw-r--r-- | shell/ash.c | 12 |
2 files changed, 6 insertions, 7 deletions
diff --git a/coreutils/test.c b/coreutils/test.c index 7b8b10cd9..afdb1413f 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 b8160433e..731c4b2b0 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++) { |