Fix assertion in malloc.c:tcache_get.
One of the warnings that appears with -Wextra is "ordered comparison of pointer with integer zero" in malloc.c:tcache_get, for the assertion: assert (tcache->entries[tc_idx] > 0); Indeed, a "> 0" comparison does not make sense for tcache->entries[tc_idx], which is a pointer. My guess is that tcache->counts[tc_idx] is what's intended here, and this patch changes the assertion accordingly. Tested for x86_64. * malloc/malloc.c (tcache_get): Compare tcache->counts[tc_idx] with 0, not tcache->entries[tc_idx]. (cherry picked from commit 77dc0d8643aa99c92bf671352b0a8adde705896f)
This commit is contained in:
parent
8646009efd
commit
9a3ff995bd
|
@ -1,3 +1,8 @@
|
||||||
|
2019-02-04 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* malloc/malloc.c (tcache_get): Compare tcache->counts[tc_idx]
|
||||||
|
with 0, not tcache->entries[tc_idx].
|
||||||
|
|
||||||
2019-02-06 Stefan Liebler <stli@linux.ibm.com>
|
2019-02-06 Stefan Liebler <stli@linux.ibm.com>
|
||||||
|
|
||||||
[BZ #23403]
|
[BZ #23403]
|
||||||
|
|
|
@ -2948,7 +2948,7 @@ tcache_get (size_t tc_idx)
|
||||||
{
|
{
|
||||||
tcache_entry *e = tcache->entries[tc_idx];
|
tcache_entry *e = tcache->entries[tc_idx];
|
||||||
assert (tc_idx < TCACHE_MAX_BINS);
|
assert (tc_idx < TCACHE_MAX_BINS);
|
||||||
assert (tcache->entries[tc_idx] > 0);
|
assert (tcache->counts[tc_idx] > 0);
|
||||||
tcache->entries[tc_idx] = e->next;
|
tcache->entries[tc_idx] = e->next;
|
||||||
--(tcache->counts[tc_idx]);
|
--(tcache->counts[tc_idx]);
|
||||||
e->key = NULL;
|
e->key = NULL;
|
||||||
|
|
Loading…
Reference in New Issue