From: Martin Mares Date: Tue, 16 May 2000 13:51:31 +0000 (+0000) Subject: Added poisoning of free'd objects when we're debugging. X-Git-Tag: v1.2.0~897 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b8e60d3562277762ec372424482b22c024e657d6;p=thirdparty%2Fbird.git Added poisoning of free'd objects when we're debugging. --- diff --git a/lib/slab.c b/lib/slab.c index 0a3455fb0..6c56044f1 100644 --- a/lib/slab.c +++ b/lib/slab.c @@ -16,6 +16,10 @@ #undef FAKE_SLAB /* Turn on if you want to debug memory allocations */ +#ifdef DEBUGGING +#define POISON /* Poison all regions after they are freed */ +#endif + static void slab_free(resource *r); static void slab_dump(resource *r); static resource *slab_lookup(resource *r, unsigned long addr); @@ -221,6 +225,9 @@ sl_free(slab *s, void *oo) struct sl_obj *o = SKIP_BACK(struct sl_obj, u.data, oo); struct sl_head *h = o->slab; +#ifdef POISON + memset(oo, 0xdb, s->obj_size); +#endif o->u.next = h->first_free; h->first_free = o; if (!--h->num_full)