|
From: <sv...@va...> - 2014-09-11 19:56:14
|
Author: philippe
Date: Thu Sep 11 19:56:03 2014
New Revision: 14515
Log:
Avoid doing arithmetic with NULL
Spotted by Florian Krohm/BEAM
Modified:
trunk/coregrind/m_deduppoolalloc.c
Modified: trunk/coregrind/m_deduppoolalloc.c
==============================================================================
--- trunk/coregrind/m_deduppoolalloc.c (original)
+++ trunk/coregrind/m_deduppoolalloc.c Thu Sep 11 19:56:03 2014
@@ -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);
}
|