summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-hung Duan <chiahungduan@google.com>2023-05-15 17:16:13 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-05-15 17:16:13 +0000
commit0bc44505dacf7ea41e595a9299dd01b3a40e5f0d (patch)
tree09c3c6b2758a55c55b6e714845aefc262605a061
parent577bd77e67507b46bfc89ab655cd304763095a9e (diff)
parent6c1aab9e382bfe5a8402f23f7d069f87a3945690 (diff)
downloadscudo-0bc44505dacf7ea41e595a9299dd01b3a40e5f0d.tar.gz
[scudo] Skip releaseToOSMaybe if there's no byte in freelist am: 6c1aab9e38
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/scudo/+/23184462 Change-Id: Ic1f476d57e0aed4a449710f33e97e9b2fb3f76f9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--standalone/primary32.h3
-rw-r--r--standalone/primary64.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/standalone/primary32.h b/standalone/primary32.h
index 7ac8df9dd95..726db754f24 100644
--- a/standalone/primary32.h
+++ b/standalone/primary32.h
@@ -737,6 +737,9 @@ private:
Sci->AllocatedUser -
(Sci->Stats.PoppedBlocks - Sci->Stats.PushedBlocks) * BlockSize;
+ if (UNLIKELY(BytesInFreeList == 0))
+ return 0;
+
bool MaySkip = false;
if (BytesInFreeList <= Sci->ReleaseInfo.BytesInFreeListAtLastCheckpoint) {
diff --git a/standalone/primary64.h b/standalone/primary64.h
index b954b7c0bf2..39248376eaa 100644
--- a/standalone/primary64.h
+++ b/standalone/primary64.h
@@ -845,6 +845,9 @@ private:
Region->AllocatedUser -
(Region->Stats.PoppedBlocks - Region->Stats.PushedBlocks) * BlockSize;
+ if (UNLIKELY(BytesInFreeList == 0))
+ return 0;
+
bool MaySkip = false;
// Always update `BytesInFreeListAtLastCheckpoint` with the smallest value