Initialize mspace->least_addr properly in the mmap path.
BUG: 6206963 Change-Id: Id2ab580246de50a4511b56a734a7bece98fb945c
This commit is contained in:
@@ -3332,7 +3332,7 @@ static void* mmap_alloc(mstate m, size_t nb) {
|
|||||||
chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD;
|
chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD;
|
||||||
chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0;
|
chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0;
|
||||||
|
|
||||||
if (mm < m->least_addr)
|
if (m->least_addr == 0 || mm < m->least_addr)
|
||||||
m->least_addr = mm;
|
m->least_addr = mm;
|
||||||
if ((m->footprint += mmsize) > m->max_footprint)
|
if ((m->footprint += mmsize) > m->max_footprint)
|
||||||
m->max_footprint = m->footprint;
|
m->max_footprint = m->footprint;
|
||||||
@@ -3678,7 +3678,9 @@ static void* sys_alloc(mstate m, size_t nb) {
|
|||||||
m->max_footprint = m->footprint;
|
m->max_footprint = m->footprint;
|
||||||
|
|
||||||
if (!is_initialized(m)) { /* first-time initialization */
|
if (!is_initialized(m)) { /* first-time initialization */
|
||||||
m->seg.base = m->least_addr = tbase;
|
if (m->least_addr == 0 || tbase < m->least_addr)
|
||||||
|
m->least_addr = tbase;
|
||||||
|
m->seg.base = tbase;
|
||||||
m->seg.size = tsize;
|
m->seg.size = tsize;
|
||||||
m->seg.sflags = mmap_flag;
|
m->seg.sflags = mmap_flag;
|
||||||
m->magic = mparams.magic;
|
m->magic = mparams.magic;
|
||||||
|
Reference in New Issue
Block a user