From bcdaad21d4635931d1bd3b54a7894276925d081d Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Tue, 20 Nov 2018 13:24:09 -0500 Subject: malloc: tcache double free check * malloc/malloc.c (tcache_entry): Add key field. (tcache_put): Set it. (tcache_get): Likewise. (_int_free): Check for double free in tcache. * malloc/tst-tcfree1.c: New. * malloc/tst-tcfree2.c: New. * malloc/Makefile: Run the new tests. * manual/probes.texi: Document memory_tcache_double_free probe. * dlfcn/dlerror.c (check_free): Prevent double frees. --- dlfcn/dlerror.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'dlfcn') diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c index 33574faab6..96bf925333 100644 --- a/dlfcn/dlerror.c +++ b/dlfcn/dlerror.c @@ -198,7 +198,10 @@ check_free (struct dl_action_result *rec) Dl_info info; if (_dl_addr (check_free, &info, &map, NULL) != 0 && map->l_ns == 0) #endif - free ((char *) rec->errstring); + { + free ((char *) rec->errstring); + rec->errstring = NULL; + } } } -- cgit 1.4.1