mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 05:50:14 +00:00
malloc: Resolve compilation failure in NDEBUG mode
In _int_free, the locked variable is not used if NDEBUG is defined.
This commit is contained in:
parent
ecd0747df3
commit
24cffce736
@ -1,3 +1,8 @@
|
|||||||
|
2017-08-31 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
* malloc/malloc.c (_int_free): Remove locked variable and related
|
||||||
|
asserts.
|
||||||
|
|
||||||
2017-08-31 H.J. Lu <hongjiu.lu@intel.com>
|
2017-08-31 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
[BZ #22051]
|
[BZ #22051]
|
||||||
|
@ -4106,8 +4106,6 @@ _int_free (mstate av, mchunkptr p, int have_lock)
|
|||||||
mchunkptr bck; /* misc temp for linking */
|
mchunkptr bck; /* misc temp for linking */
|
||||||
mchunkptr fwd; /* misc temp for linking */
|
mchunkptr fwd; /* misc temp for linking */
|
||||||
|
|
||||||
int locked = 0;
|
|
||||||
|
|
||||||
size = chunksize (p);
|
size = chunksize (p);
|
||||||
|
|
||||||
/* Little security check which won't hurt performance: the
|
/* Little security check which won't hurt performance: the
|
||||||
@ -4162,19 +4160,14 @@ _int_free (mstate av, mchunkptr p, int have_lock)
|
|||||||
/* We might not have a lock at this point and concurrent modifications
|
/* We might not have a lock at this point and concurrent modifications
|
||||||
of system_mem might have let to a false positive. Redo the test
|
of system_mem might have let to a false positive. Redo the test
|
||||||
after getting the lock. */
|
after getting the lock. */
|
||||||
if (have_lock
|
if (!have_lock
|
||||||
|| ({ assert (locked == 0);
|
|| ({ __libc_lock_lock (av->mutex);
|
||||||
__libc_lock_lock (av->mutex);
|
|
||||||
locked = 1;
|
|
||||||
chunksize_nomask (chunk_at_offset (p, size)) <= 2 * SIZE_SZ
|
chunksize_nomask (chunk_at_offset (p, size)) <= 2 * SIZE_SZ
|
||||||
|| chunksize (chunk_at_offset (p, size)) >= av->system_mem;
|
|| chunksize (chunk_at_offset (p, size)) >= av->system_mem;
|
||||||
}))
|
}))
|
||||||
malloc_printerr ("free(): invalid next size (fast)");
|
malloc_printerr ("free(): invalid next size (fast)");
|
||||||
if (! have_lock)
|
if (! have_lock)
|
||||||
{
|
__libc_lock_unlock (av->mutex);
|
||||||
__libc_lock_unlock (av->mutex);
|
|
||||||
locked = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
|
free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
|
||||||
@ -4211,10 +4204,8 @@ _int_free (mstate av, mchunkptr p, int have_lock)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
else if (!chunk_is_mmapped(p)) {
|
else if (!chunk_is_mmapped(p)) {
|
||||||
if (! have_lock) {
|
if (!have_lock)
|
||||||
__libc_lock_lock (av->mutex);
|
__libc_lock_lock (av->mutex);
|
||||||
locked = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
nextchunk = chunk_at_offset(p, size);
|
nextchunk = chunk_at_offset(p, size);
|
||||||
|
|
||||||
@ -4328,10 +4319,8 @@ _int_free (mstate av, mchunkptr p, int have_lock)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! have_lock) {
|
if (!have_lock)
|
||||||
assert (locked);
|
|
||||||
__libc_lock_unlock (av->mutex);
|
__libc_lock_unlock (av->mutex);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
If the chunk was allocated via mmap, release via munmap().
|
If the chunk was allocated via mmap, release via munmap().
|
||||||
|
Loading…
Reference in New Issue
Block a user