aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2019-03-22 18:37:25 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-03-22 18:37:25 -0700
commit766934fd92bb4e8d8fac90f95f839193b27fa8d9 (patch)
tree24de748bcd50dbc19bab882b77d0c5a636ae3513
parent27c2c8bead7fa46e24b71fff072dbfec560dcc6d (diff)
parent08d6c0f8458c9380d9c404d55fea17176d588afa (diff)
downloadplatform_external_jemalloc_new-766934fd92bb4e8d8fac90f95f839193b27fa8d9.tar.gz
platform_external_jemalloc_new-766934fd92bb4e8d8fac90f95f839193b27fa8d9.tar.bz2
platform_external_jemalloc_new-766934fd92bb4e8d8fac90f95f839193b27fa8d9.zip
Fix bug trying to examine unused extents. am: 46971b81ee
am: 08d6c0f845 Change-Id: I25764bf0f640d5cd24331b2dba9715860fdf4faf
-rw-r--r--src/android_je_iterate.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/android_je_iterate.c b/src/android_je_iterate.c
index f0a4cc3e..ca776e00 100644
--- a/src/android_je_iterate.c
+++ b/src/android_je_iterate.c
@@ -34,6 +34,12 @@ int je_iterate(uintptr_t base, size_t size,
continue;
}
+ if (extent_szind_get_maybe_invalid(extent) >= NSIZES) {
+ // Ignore this unused extent.
+ ptr = (uintptr_t)extent_past_get(extent);
+ continue;
+ }
+
szind_t szind;
bool slab;
rtree_szind_slab_read(tsd_tsdn(tsd), &extents_rtree, rtree_ctx, ptr, true, &szind, &slab);
@@ -56,8 +62,7 @@ int je_iterate(uintptr_t base, size_t size,
callback(allocated_ptr, bin_size, arg);
}
}
- } else if (extent_state_get(extent) == extent_state_active &&
- extent_szind_get_maybe_invalid(extent) < NSIZES) {
+ } else if (extent_state_get(extent) == extent_state_active) {
// Large allocation.
uintptr_t base_ptr = (uintptr_t)extent_addr_get(extent);
if (ptr <= base_ptr) {