[compiler-rt] [scudo] Move getResidentPages function (PR #183138)

via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 2 13:04:02 PST 2026


================
@@ -75,6 +75,34 @@ TEST(ScudoMapDeathTest, MapWithGuardUnmap) {
   MemMap.unmap();
 }
 
+// These death tests only fail when debugging is enabled.
+#if SCUDO_DEBUG && SCUDO_LINUX
+TEST(ScudoMapDeathTest, ResidentPagesNotMapped) {
+  scudo::MemMapT MemMap;
+  EXPECT_DEATH(MemMap.getResidentPages(), "");
+}
+#endif
+
+#if SCUDO_DEBUG && SCUDO_LINUX
+TEST(ScudoMapDeathTest, ResidentPagesFromInvalid) {
+  scudo::MemMapT MemMap;
+  const scudo::uptr Size = 4 * scudo::getPageSizeCached();
+  MemMap.map(/*Addr=*/0U, Size, MappingName);
+  EXPECT_DEATH(MemMap.getResidentPages(0U, Size), "");
+  MemMap.unmap();
+}
+#endif
+
+#if SCUDO_DEBUG && SCUDO_LINUX
+TEST(ScudoMapDeathTest, ResidentPagesSizeInvalid) {
+  scudo::MemMapT MemMap;
+  const scudo::uptr Size = 4 * scudo::getPageSizeCached();
+  MemMap.map(/*Addr=*/0U, Size, MappingName);
+  EXPECT_DEATH(MemMap.getResidentPages(MemMap.getBase(), Size + 1), "");
+  MemMap.unmap();
+}
+#endif
----------------
ChiaHungDuan wrote:

I think the DCHECK in mem_map_base.h is enough for guarding of the out-of-bound access.

https://github.com/llvm/llvm-project/pull/183138


More information about the llvm-commits mailing list