When backtrace_vector_release is called with vec.size == 0, it releases the
memory pointed at by vec.base.
Set vec.base set to NULL if vec.size == 0 to ensure we don't point to released
memory.
Bootstrapped and reg-tested on x86_64.
2018-11-27 Tom de Vries <tdevries@suse.de>
* mmap.c (backtrace_vector_release): Same.
* unittest.c (test1): Add check.
From-SVN: r266505
+2018-11-27 Tom de Vries <tdevries@suse.de>
+
+ * mmap.c (backtrace_vector_release): Same.
+ * unittest.c (test1): Add check.
+
2018-11-27 Tom de Vries <tdevries@suse.de>
* alloc.c (backtrace_vector_release): Handle vec->size == 0 using free
backtrace_free (state, (char *) vec->base + aligned, alc,
error_callback, data);
vec->alc = 0;
+ if (vec->size == 0)
+ vec->base = NULL;
return 1;
}
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");