[patch] tcache double free check
Florian Weimer
fweimer@redhat.com
Thu Nov 8 20:10:00 GMT 2018
* DJ Delorie:
> + /* This test succeeds on double free. However, we don't 100% trust
> + it, so verify it's not an unlikely coincidence before
> + aborting. */
> + if (__glibc_unlikely (e->key == tcache))
> + {
> + tcache_entry *tmp;
> + for (tmp = tcache->entries[tc_idx];
> + tmp;
> + tmp = tmp->next)
> + {
> + if (tmp == e)
> + malloc_printerr ("free(): double free detected in tcache");
> + }
> + /* If we get here, it was a coincidence. We've wasted a few
> + cycles, but don't abort. */
> + }
One more thing:
I think you should put an Systemtap probe here, perhaps counting the
length of the chain and logging the index, so that we can debug
performance issues here.
Thanks,
Florian
More information about the Libc-alpha
mailing list