diff --git a/src/activity.c b/src/activity.c index 5417deb62..c38deed08 100644 --- a/src/activity.c +++ b/src/activity.c @@ -185,6 +185,10 @@ struct memprof_stats *memprof_get_bin(const void *ra, enum memprof_method meth) const void *old; unsigned int bin; + if (unlikely(!ra)) { + bin = MEMPROF_HASH_BUCKETS; + goto leave; + } bin = ptr_hash(ra, MEMPROF_HASH_BITS); for (; memprof_stats[bin].caller != ra; bin = (bin + 1) & (MEMPROF_HASH_BUCKETS - 1)) { if (!--retries) { @@ -199,6 +203,7 @@ struct memprof_stats *memprof_get_bin(const void *ra, enum memprof_method meth) break; } } +leave: return &memprof_stats[bin]; }