diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog index 255e2c8921e6..e7fdfd8e9403 100644 --- a/libbacktrace/ChangeLog +++ b/libbacktrace/ChangeLog @@ -1,3 +1,8 @@ +2018-11-27 Tom de Vries + + * mmap.c (backtrace_vector_release): Same. + * unittest.c (test1): Add check. + 2018-11-27 Tom de Vries * alloc.c (backtrace_vector_release): Handle vec->size == 0 using free diff --git a/libbacktrace/mmap.c b/libbacktrace/mmap.c index 32fcba623992..9f896a1bb998 100644 --- a/libbacktrace/mmap.c +++ b/libbacktrace/mmap.c @@ -321,5 +321,7 @@ backtrace_vector_release (struct backtrace_state *state, backtrace_free (state, (char *) vec->base + aligned, alc, error_callback, data); vec->alc = 0; + if (vec->size == 0) + vec->base = NULL; return 1; } diff --git a/libbacktrace/unittest.c b/libbacktrace/unittest.c index 576aa0809350..3471d78488d1 100644 --- a/libbacktrace/unittest.c +++ b/libbacktrace/unittest.c @@ -69,7 +69,7 @@ test1 (void) count = 0; res = backtrace_vector_release (state, &vec, error_callback, NULL); - failed = res != 1 || count != 0; + failed = res != 1 || count != 0 || vec.base != NULL; printf ("%s: unittest backtrace_vector_release size == 0\n", failed ? "FAIL": "PASS");