From: Philippe Waroquiers Date: Thu, 11 Sep 2014 19:56:03 +0000 (+0000) Subject: Avoid doing arithmetic with NULL X-Git-Tag: svn/VALGRIND_3_11_0~1015 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c398101b06d07649969c105cdeb0b3e9529e012;p=thirdparty%2Fvalgrind.git Avoid doing arithmetic with NULL Spotted by Florian Krohm/BEAM git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14515 --- diff --git a/coregrind/m_deduppoolalloc.c b/coregrind/m_deduppoolalloc.c index d38d7cdf80..05e03b60b9 100644 --- a/coregrind/m_deduppoolalloc.c +++ b/coregrind/m_deduppoolalloc.c @@ -112,7 +112,7 @@ extern DedupPoolAlloc* VG_(newDedupPA) ( SizeT poolSzB, 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 @@ static void print_stats (DedupPoolAlloc *ddpa) (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 @@ void* VG_(allocEltDedupPA) (DedupPoolAlloc *ddpa, SizeT eltSzB, const void *elt) 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); }