Avoid doing arithmetic with NULL
Spotted by Florian Krohm/BEAM
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14515 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_deduppoolalloc.c b/coregrind/m_deduppoolalloc.c
index d38d7cd..05e03b6 100644
--- a/coregrind/m_deduppoolalloc.c
+++ b/coregrind/m_deduppoolalloc.c
@@ -112,7 +112,7 @@
free_fn);
ddpa->curpool = NULL;
ddpa->curpool_limit = NULL;
- ddpa->curpool_free = ddpa->curpool_limit + 1;
+ ddpa->curpool_free = NULL;
vg_assert(ddpa->pools);
return ddpa;
}
@@ -207,7 +207,8 @@
(long int) ddpa->nr_alloc_calls,
VG_(HT_count_nodes)(ddpa->ht_elements),
VG_(sizeXA)(ddpa->pools),
- (long int) (ddpa->curpool_limit - ddpa->curpool_free + 1));
+ ddpa->curpool ?
+ (long int) (ddpa->curpool_limit - ddpa->curpool_free + 1) : 0);
VG_(HT_print_stats) (ddpa->ht_elements, cmp_pool_elt);
}
@@ -264,7 +265,8 @@
and insert it in the hash table of inserted elements. */
// Add a new pool or grow pool if not enough space in the current pool
- if (UNLIKELY(ddpa->curpool_free + eltSzB - 1 > ddpa->curpool_limit)) {
+ if (UNLIKELY(ddpa->curpool_free == NULL
+ || ddpa->curpool_free + eltSzB - 1 > ddpa->curpool_limit)) {
ddpa_add_new_pool_or_grow (ddpa);
}