From eb699f36313b61fbf96b10bb7c2f6aeeff6cfc93 Mon Sep 17 00:00:00 2001 From: Corey Farrell Date: Thu, 15 Mar 2018 05:49:49 -0400 Subject: [PATCH] core: Backport compatible MALLOC_DEBUG changes. * Add support for MALLOC_DEBUG and DEBUG_CHAOS to be used together. * Add utils/astmm.c to .gitignore. * Fix MALLOC_DEBUG variant of __ast_vasprintf. This function called va_end(ap) upon allocation failure. This is incorrect since ap is passed as an argument. Change-Id: I9f27ced4ce3cbe4b39547a67f994fdff491978c0 --- build_tools/cflags.xml | 2 -- main/astmm.c | 3 ++- utils/.gitignore | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_tools/cflags.xml b/build_tools/cflags.xml index b4be282b86..34c65d70ab 100644 --- a/build_tools/cflags.xml +++ b/build_tools/cflags.xml @@ -78,11 +78,9 @@ extended - DEBUG_CHAOS core - MALLOC_DEBUG core diff --git a/main/astmm.c b/main/astmm.c index 59baa4221b..2134a1f732 100644 --- a/main/astmm.c +++ b/main/astmm.c @@ -227,6 +227,8 @@ static void *__ast_alloc_region(size_t size, const enum func_type which, const c unsigned int *fence; int hash; + DEBUG_CHAOS_RETURN(DEBUG_CHAOS_ALLOC_CHANCE, NULL); + if (!(reg = malloc(size + sizeof(*reg) + sizeof(*fence)))) { astmm_log("Memory Allocation Failure - '%d' bytes at %s %s() line %d\n", (int) size, file, func, lineno); @@ -664,7 +666,6 @@ int __ast_vasprintf(char **strp, const char *fmt, va_list ap, const char *file, size = vsnprintf(&s, 1, fmt, ap2); va_end(ap2); if (!(*strp = __ast_alloc_region(size + 1, FUNC_VASPRINTF, file, lineno, func, 0))) { - va_end(ap); return -1; } vsnprintf(*strp, size + 1, fmt, ap); diff --git a/utils/.gitignore b/utils/.gitignore index 8e95c8df8f..f9ffe151da 100644 --- a/utils/.gitignore +++ b/utils/.gitignore @@ -3,6 +3,7 @@ aelparse aelparse.c ast_expr2.c ast_expr2f.c +astmm.c astman astcanary astdb2bdb -- 2.47.2