)]}'
{
  "log": [
    {
      "commit": "fb854b368e5333f894a8b051760c731d5d4b708b",
      "tree": "951f7e7708e77faefe9c6462d74426136f18c98f",
      "parents": [
        "928fbe7c8b00ab8757c7842194efc1124c1cf73a"
      ],
      "author": {
        "name": "Jake Adamson",
        "email": "17357301+Jake-The-Human@users.noreply.github.com",
        "time": "Wed Oct 21 09:01:27 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 09:08:54 2026 -0700"
      },
      "message": "[compiler-rt][scudo] Add CMake presets for standalone builds (#221089)\n\nAdd CMakePresets.json under compiler-rt to configure and test Scudo\nstandalone without requiring a full LLVM monorepo build. Includes\nscudo-debug, scudo-release, and test presets. Used Gemini to clean up\nand make the presets more generalized.\n\nAssisted-by: Gemini\nGitOrigin-RevId: eb8cddbf1757653499264af4d701ebe8104002c9\n"
    },
    {
      "commit": "928fbe7c8b00ab8757c7842194efc1124c1cf73a",
      "tree": "01a55e262508455680cc70b002171382c93beaaa",
      "parents": [
        "f6baf2b4ebfa85356638f63e1263b8cb929c0bd4"
      ],
      "author": {
        "name": "Jared Duke",
        "email": "jdduke@google.com",
        "time": "Tue Oct 20 00:46:19 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 17:52:13 2026 -0700"
      },
      "message": "[scudo] Only lock active TSDs in TSDRegistrySharedT::disable() (#233617)\n\nTSDRegistrySharedT::disable() and enable() run around fork() via\npthread_atfork and lock and unlock all TSDsArraySize TSDs. Only the\nfirst NumberOfTSDs TSDs can ever be handed to a thread, so touching the\nrest only dirties their pages.\n\nOn Android (TSDsArraySize 8, NumberOfTSDs 2 by default), unlocking the\nsix inactive TSDs in the child writes to their mutex words and causes\ncopy-on-write faults on five otherwise untouched .bss pages in every\nforked process. On an idle device this is 20 KiB of private dirty\nmemory per Zygote-forked process, or about 2.3 MiB across the ~120 such\nprocesses.\n\nBound both loops by NumberOfTSDs, matching drainCaches() and getStats().\nsetNumberOfTSDs() only grows the count and only while holding Mutex,\nwhich disable() holds until enable(), so both loops see the same value.\n\nAlso call disable()/enable() in TSDRegistryTSDsCount before and after\nraising MaxTSDsCount, as a smoke test that the lock and unlock loops\nstay balanced.\n\nAssisted-by: Gemini\nGitOrigin-RevId: 470fbd4326de41f94d6d2f6a786c61c0210e706c\n"
    },
    {
      "commit": "f6baf2b4ebfa85356638f63e1263b8cb929c0bd4",
      "tree": "4ca8aa09248858506571b922400826f17a722a86",
      "parents": [
        "7f9288d4e8b0ae6c7aa7c2e94600258bd1c3fa99"
      ],
      "author": {
        "name": "Fabio D\u0027Urso",
        "email": "fdurso@google.com",
        "time": "Fri Oct 16 23:55:17 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 15:03:40 2026 -0700"
      },
      "message": "[scudo] Avoid QuarantineBatch leak in GlobalQuarantineRecycleInvalidCount (#232905)\n\nIn GlobalQuarantineRecycleInvalidCount,\nQuarantine.drainAndRecycle(\u0026Cache, Cb)\ndequeues B from Cache before hitting the CHECK failure on B-\u003eCount. On\nplatforms where death tests execute in a thread within the same address\nspace\n(such as Fuchsia zxtest), Cache is already empty after\nSCUDO_EXPECT_DEATH\nreturns, so deallocateCache(\u0026Cache) fails to free B and triggers a\nLeakSanitizer failure.\n\nDeallocate B directly via Cb.deallocate(B) instead.\n\nGitOrigin-RevId: 253634e58aefd780a2612980a53c24c61e78c99c\n"
    },
    {
      "commit": "7f9288d4e8b0ae6c7aa7c2e94600258bd1c3fa99",
      "tree": "11677fbc7f56c300468cd0257ef7c408fdd449b8",
      "parents": [
        "283b1d863b330ee3dce8cbd04b2d7342148f309a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Oct 16 18:50:05 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 11:56:55 2026 -0700"
      },
      "message": "[scudo] Mark functions/classes as test only. (#231737)\n\nA few functions/classes should be test only to indicate they should not\nbe used in normal code.\n\nSpecifically, isOwned to isOwnedTestOnly and the class\nScopedDisableMemoryTagChecks to ScopedTestOnlyDisableMemoryTagChecks.\n\nModify the iterateOverChunks function to avoid using the test class and\nclean up the function a bit.\n\nGitOrigin-RevId: 215725ffad83bd499ffca9381b3cace185522160\n"
    },
    {
      "commit": "283b1d863b330ee3dce8cbd04b2d7342148f309a",
      "tree": "b4c4791eff393154ba64faba94a8f5e4d493f74c",
      "parents": [
        "9424bb7de9a357c94a8017814a94afb349e46bcd"
      ],
      "author": {
        "name": "David Anderson",
        "email": "89121871+dvandercorp@users.noreply.github.com",
        "time": "Wed Oct 14 16:44:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 16:56:32 2026 -0700"
      },
      "message": "[scudo] Re-check freelist before populating blocks in popBlocksWithCV (#231750)\n\nIn popBlocksWithCV, the region freelist may become non-empty before the\nthread calls populateFreeListAndPopBlocks. This can happen in two\nscenarios:\n\n1. Another thread may push blocks or finish\npopulateFreeListAndPopBlocks() in the window between releasing FLLock in\npopBlocks() and reacquiring it in popBlocksWithCV().\n\n2. releaseToOSMaybe() holds MMLock while temporarily extracting\nGroupsToRelease with FLLock unlocked, and merges those groups back into\nBlockList before releasing MMLock.\n\nWhen this does happen, popBlocksWithCV unconditionally calls\npopulateFreeListAndPopBlocks, permanently growing the region mapping and\nBatchClassId freelist metadata.\n\nThe fix here is to re-check popBlocksImpl() under FLLock before setting\nIsPopulatingFreeList and after acquiring MMLock, so existing free blocks\nare reused.\n\nAssisted-by: Gemini\n\nSigned-off-by: David Anderson \u003cdvander@google.com\u003e\nGitOrigin-RevId: c6b016f0f11bd8f41b2ef596ff6a89ab5f2310d4\n"
    },
    {
      "commit": "9424bb7de9a357c94a8017814a94afb349e46bcd",
      "tree": "0fd82f40a134fbfec0d6afb94b8dcc876a64520d",
      "parents": [
        "7de66cf8f74a426bcf73c28aa650ecad54659770"
      ],
      "author": {
        "name": "Kostya Kortchinsky",
        "email": "kostya.kortchinsky@gmail.com",
        "time": "Fri Oct 09 18:28:26 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 18:31:38 2026 -0700"
      },
      "message": "[scudo] Check quarantine batch bounds in release builds (#230247)\n\n[Attacking Scudo\u0027s Quarantine, section 3: Write Where\nPtr](https://un1fuzz.github.io/articles/quarantine_attack.html#a3)\ndescribes corrupting a quarantine batch\u0027s `Count` so that enqueue writes\nthe freed pointer outside the batch. The original [PoC and exploit code\nare\nhere](https://github.com/un1fuzz/scudo_research/tree/main/quarantine_arbitrary_return).\n`push_back()` currently guards its index with a debug-only check; an\noversized count also bypasses enqueue\u0027s full-batch equality check.\n\nMake that bound a release-build check. Also validate both counts before\ndeciding whether batches can merge, enforce merge capacity in\nproduction, and check the count before shuffling (which precedes\nrecycling). The capacity comparison uses subtraction after validating\nboth operands, avoiding corrupted-count addition wrapping around.\n\nThis closes the out-of-bounds enqueue primitive described in section 3.\nIt does not address section 2\u0027s Double Return attack using in-range\ncounts and stale entries, or authenticate batch pointers. Tests exercise\nthe corrupted-count mechanism; the original end-to-end exploit was not\nreplayed.\n\nValidation on Ubuntu WSL x86_64 with Clang 21.1.8:\n\n- Full debug-checks suite: 802 passed, 44 skipped; release: 802 passed,\n40 skipped; zero failures.\n- Five new corruption tests fail against the original release header and\npass with this patch. Coverage includes full/oversized counts, both\nmerge operands, sum wraparound, enqueue, shuffle, and recycling; valid\nempty/full batch behavior is retained.\n- All 14 quarantine tests pass for 20 shuffled ASan/UBSan runs.\n- Clang-format and diff whitespace checks pass.\n\nA local pinned-CPU `-O2` microbenchmark measured median append cost of\n1.155 to 1.185 ns per entry and cache enqueue cost of 1.776 to 1.827 ns\n(about +3%, with overlapping sample ranges). This is not an end-to-end\nallocator benchmark and does not measure merge/shuffle cost. The checks\nexecute on quarantine paths; enabling quarantine and its limits is\nunchanged. Android, 32-bit, AArch64/MTE, and Fuchsia were not tested.\n\nAssisted-by: OpenAI Codex. Draft for the author\u0027s review before\nrequesting maintainer review.\nGitOrigin-RevId: acd27dbc4ae293113fcddab8576e17ab06299d0c\n"
    },
    {
      "commit": "7de66cf8f74a426bcf73c28aa650ecad54659770",
      "tree": "2c551a966d2b71803eb51eb01f13d69ad2e4907b",
      "parents": [
        "9ce5778f200468f80b691c0034562be722fa7de2"
      ],
      "author": {
        "name": "Kostya Kortchinsky",
        "email": "kostya.kortchinsky@gmail.com",
        "time": "Wed Oct 07 19:35:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 07 19:43:31 2026 -0700"
      },
      "message": "[scudo] Validate list endpoints and links before removing a node (#229245)\n\n`DoublyLinkedList::remove()` currently modifies the predecessor\u0027s link\nbefore validating the successor\u0027s reciprocal link, and checks endpoint\nconsistency only in debug builds. A corrupted successor can therefore be\nrejected after a list write has already occurred, while inconsistent\nnull links can bypass endpoint checks in release builds.\n\nCheck that the list is nonempty, enforce endpoint consistency in release\nbuilds, and validate both reciprocal links before modifying any list\nstate. The production change is confined to `remove()`. This strengthens\nconsistency checks; it does not authenticate list membership or protect\nagainst mutually consistent forged interior nodes.\n\nTests cover all 24 removal orders of four nodes, plus empty-list\nremoval, both directions of endpoint inconsistency, and corrupted\nreciprocal links, using pointer and index links.\n\nLocal validation on Linux x86_64 in WSL, Clang 21.1.8:\n\n- Full `check-scudo_standalone` suites: debug checks enabled, 790 passed\n/ 44 skipped; release, 790 passed / 40 skipped; zero failures.\n- New regression tests fail against the original release header and pass\nagainst the modified header.\n- Standalone list tests passed 20 shuffled repetitions under ASan and\nUBSan.\n- A supplemental shared-memory harness confirmed that all seven failure\ncases leave list/node storage unchanged. The original implementation\nwrites before rejecting the corrupted-successor case.\n- `clang-format --dry-run --Werror` and `git diff --check` pass.\n\nA local `-O2` microbenchmark of `remove()` followed by `push_back()`\nmeasured median costs of 1.93 to 3.21 ns with one node and 2.06 to 3.62\nns with 64 nodes (about +67% and +76%). Six measured samples per\nvariant, 200 million operations per sample, alternating variants on one\npinned WSL CPU. This is a list-operation microbenchmark, not an\nend-to-end allocator measurement. Android, AArch64/MTE, and Fuchsia were\nnot run.\n\nAssisted-by: OpenAI Codex. This draft is for the author\u0027s review before\nrequesting maintainer review.\n\nCo-authored-by: Christopher Ferris \u003ccferris1000@users.noreply.github.com\u003e\nGitOrigin-RevId: d19f7e853a369635d5fbd5fd8318110a45be1183\n"
    },
    {
      "commit": "9ce5778f200468f80b691c0034562be722fa7de2",
      "tree": "986adb0c2a1caa28ff01aba8eafbca36b31bfb8e",
      "parents": [
        "98b58403934c770e773d04336f13cde28be0e74a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Oct 02 18:16:07 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 02 11:23:06 2026 -0700"
      },
      "message": "[scudo] Disable tagging when running with asan. (#227516)\n\nThe fuzzer defaults to running with asan, and adding tags to pointers\nconfuses asan and causes crashes. Therefore, disable memory tagging when\nasan is detected.\n\nGitOrigin-RevId: 4d7ad2874b98509e83c692665fd9803054f8a909\n"
    },
    {
      "commit": "98b58403934c770e773d04336f13cde28be0e74a",
      "tree": "33acc2b798feec1cfb56bf7f06453d6e9a86e0dd",
      "parents": [
        "7ea6c0b69df4f142ef7ca04e448ee1c330b186eb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Sep 22 11:34:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 11:37:30 2026 -0700"
      },
      "message": "[scudo] Skip secondary release if interval greater than current time. (#225242)\n\nIf the current time is less than the release interval, the call to\nreleaseOlderThan wraps around and releases all entries. Skip releasing\nwhen detecting this case.\n\nGitOrigin-RevId: 8045e64d0e80712952b5820564aa57fbbb42fbda\n"
    },
    {
      "commit": "7ea6c0b69df4f142ef7ca04e448ee1c330b186eb",
      "tree": "e06ab25db84fb42036dfe617618bc89870853fdd",
      "parents": [
        "4ca393b69bfd89b8112dd014a98420218372a45c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Sep 18 16:10:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 16:16:33 2026 -0700"
      },
      "message": "[scudo] Fix AllocatorCacheMaxResidentBytesDisabled test (#224698)\n\nThe test made an implicit assumption about how the maps were created. On\na device where the page size is much greater than 4096, the test fails\nbecause of the hard-coded limits. Make the limits and values depend on\npage size to avoid this problem.\n\nGitOrigin-RevId: 265c5b66a632bcf2cdc6a4886a250b176532502b\n"
    },
    {
      "commit": "4ca393b69bfd89b8112dd014a98420218372a45c",
      "tree": "9b91e9347988f94202f1c1841fdc8e04b3d57196",
      "parents": [
        "ba6900d35405f5e33dd5487442e7183f5c94e7e9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Sep 16 13:33:18 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 13:36:26 2026 -0700"
      },
      "message": "[scudo] Do not trim the secondary cache if releasing is disabled. (#223881)\n\nWhen the ReleaseInterval is set to less than zero, then releasing has\nbeen disabled. In this case, honor this and do not trim the cache using\nthe MaxCacheResidentyBytes value.\n\nAdd a test to verify this behavior.\n\nGitOrigin-RevId: 29b702e5e690b0216b81eabb9b023030de9b90d7\n"
    },
    {
      "commit": "ba6900d35405f5e33dd5487442e7183f5c94e7e9",
      "tree": "5a8fe1153fdec1713fb23f6671e54f7385370ebb",
      "parents": [
        "1e6b7275b4cd150563884a293a3bf7b7fe813bbe"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Sep 11 12:03:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 12:11:07 2026 -0700"
      },
      "message": "[scudo] Refactor BufferPool code slightly. (#222811)\n\nPass the Buffer object in buffer creation functions. Add an error\nmessage if the dynamic buffer creation fails.\n\nAdd a threaded unit test to verify the BufferPool handles concurrent\nbuffer creation properly.\n\nAlso, fix a few typos in the code.\n\nGitOrigin-RevId: dc7e9b16f229adbad90bafe1bd5685794ffb4710\n"
    },
    {
      "commit": "1e6b7275b4cd150563884a293a3bf7b7fe813bbe",
      "tree": "5c719c9feeb32654e17f04acf19322f6c86aac61",
      "parents": [
        "e2519a08817f32b70decfb907f82a40b391e7501"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Tue Sep 01 17:04:58 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 15:12:27 2026 -0700"
      },
      "message": "[scudo] Add MaxCacheResidentBytes to Secondary\n\nIntroduce DefaultMaxCacheResidentBytes in the cache configuration and\nMaxCacheResidentBytes at runtime to enforce an upper bound on total\nresident memory in the Secondary cache.\n\nWhen storing a block causes resident bytes to exceed the threshold,\nphysical pages from the oldest cached entries are released to the OS via\nreleaseAndZeroPagesToOS() while preserving their virtual address\nmappings in the cache.\n\nAlso adds Option::MaxCacheResidentBytes and M_CACHE_RESIDENT_BYTES_MAX\nto allow tuning this limit dynamically via mallopt().\n\nGitOrigin-RevId: b2c390e532f1a89c6946b65644c6cf05ca2b8b90\n"
    },
    {
      "commit": "e2519a08817f32b70decfb907f82a40b391e7501",
      "tree": "81a7ba40962c58e1b1bbcd6e4e07bb6910828129",
      "parents": [
        "cb8acfbd67fb4def42be56404a534ef6c2b48a10"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Thu Aug 27 16:49:46 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 14:56:37 2026 -0700"
      },
      "message": "[scudo] Track maximum resident memory in cache (#219036)\n\nAdd tracking for the resident memory in MapAllocatorCache. Unreleased\ncache entries where Time !\u003d 0 are assumed to be resident, while entries\nthat have passed through releaseOlderThan where Time \u003d\u003d 0 have had their\nphysical pages discarded.\n\nTracking is performed by updating CurrentResidentBytes on store, remove,\nand release operations, recoding the peak in maxResidentBytes and\nreporting it in getStats.\n\nGitOrigin-RevId: 5964066e909c5c443bd2f48a88dc54f263a4d47e\n"
    },
    {
      "commit": "cb8acfbd67fb4def42be56404a534ef6c2b48a10",
      "tree": "6bb12fa974b78ef5d0ecd5e0eecf5a02dcbaa151",
      "parents": [
        "e4d890b0c7e7cfd0232c10043c0d76fcfeb7af1a"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Tue Aug 18 15:53:17 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 13:56:30 2026 -0700"
      },
      "message": "[scudo] Fix MTE remapping for cached allocations\n\nWhen MTE is enabled, force page-alignment for all secondary allocations.\nSince the allocation position can shift when reusing a cached block, the\nnew header page must be remapped with MAP_MEMTAG to enable MTE and the\nold header page must be remapped without MAP_MEMTAG to disable MTE, as\nit may now be a part of the user playload. This is necessary because\nPROT_MTE is sticky and not cleared by the PROT_NONE mapping used during\ncaching.\n\nCo-authored-by: Christopher Ferris \u003ccferris1000@users.noreply.github.com\u003e\nGitOrigin-RevId: 95bde4372e3f98a60da6f98f2bc29d435e9cef70\n"
    },
    {
      "commit": "e4d890b0c7e7cfd0232c10043c0d76fcfeb7af1a",
      "tree": "77d58ea728ef23c762090421d46c76ac302f18d0",
      "parents": [
        "23e3063ed138384713d113ca32a7eefeb193149a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Aug 11 16:02:16 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 11 09:05:14 2026 -0700"
      },
      "message": "[scudo] Remove malloc_enable_child from API. (#215439)\n\nThe malloc_enable_child does not need to be a public API, instead move\nthe function to be static and reference it that way.\n\nGitOrigin-RevId: a558267da71fe93b7ff6fa9c7abcbd9b4eb87444\n"
    },
    {
      "commit": "23e3063ed138384713d113ca32a7eefeb193149a",
      "tree": "ff000437796995b03c0e56453e45be3f0db18739",
      "parents": [
        "f8fc146da5b578bbe1127b339e90410591d02f2a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Aug 06 19:07:22 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 06 12:11:12 2026 -0700"
      },
      "message": "[scudo] Add check to verify locking is correct. (#214377)\n\nAdded checks that at the end of lockSlow, the lock is held and when\ndoing an unlock, the lock is held.\n\nThis found a bug in primary32.h:unmapTestOnly where the lock is not\nheld, so fixed that.\n\nGitOrigin-RevId: 38ca11fed5ec1448f16b717c2676562c7f99b969\n"
    },
    {
      "commit": "f8fc146da5b578bbe1127b339e90410591d02f2a",
      "tree": "95982124bab507829681554f168c429575b69e32",
      "parents": [
        "9bc3817a298e8ef3d36d5240ba943e2fae8ea1f6"
      ],
      "author": {
        "name": "Michael Jones",
        "email": "michaelrj@google.com",
        "time": "Thu Jul 30 12:52:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 30 12:55:23 2026 -0700"
      },
      "message": "[scudo] Fix GCC build after 212604 (#212904)\n\nChange #212604 introduced an issue when building with gcc where it\ncomplains there are \"too few template-parameter-lists\" (see log:\n\nhttps://lab.llvm.org/buildbot/#/builders/131/builds/51269/steps/6/logs/stdio\n)\nThis PR fixes the build.\n\nAssisted-by: Automated tooling, human reviewed.\nGitOrigin-RevId: aae5b3f2a92cc1c08a4bd65ba397fba5e37272fe\n"
    },
    {
      "commit": "9bc3817a298e8ef3d36d5240ba943e2fae8ea1f6",
      "tree": "7e7ae0188a8543522e4314e7c8687955c1978c5a",
      "parents": [
        "c50be5ce5e342f7c5fc901ce574f75163fd4d3ca"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Jul 29 22:02:32 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 29 15:05:19 2026 -0700"
      },
      "message": "[scudo] Fix all deadlocks with condition code variables. (#212604)\n\nAdded a ScopedFLLock that automatically handles notify calls if there\nare waiters. Replace all ScopedLock of FLLock with this new\nScopedFLLock. Updated the enable function to properly notify FLLock\nwaiters if necessary.\n\nAdded a new function for re-enabling in the child process after a fork\nto clear the variables used by the condition code.\n\nGitOrigin-RevId: 738cbf1883083525a76a6eeb30671ea778661bd3\n"
    },
    {
      "commit": "c50be5ce5e342f7c5fc901ce574f75163fd4d3ca",
      "tree": "e60f39ae4ad543ca01346cacac7b0b8f080f2d97",
      "parents": [
        "a3aeaa7a2d7714b52baff3e29e1a0aee68fd16cf"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Jul 27 17:49:24 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 27 10:51:20 2026 -0700"
      },
      "message": "[scudo] Test to verify fork and allocate does not deadlock. (#211975)\n\nGitOrigin-RevId: ad791f26ef495dbc2c3c6c283518872697210898\n"
    },
    {
      "commit": "a3aeaa7a2d7714b52baff3e29e1a0aee68fd16cf",
      "tree": "43de40170c0adc99f0532802bb1d2465e8e5ab63",
      "parents": [
        "a5dd68eac46b366f954c333001fb6e4e8da68631"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Mon Jul 27 10:39:00 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 27 08:39:57 2026 -0700"
      },
      "message": "[scudo] Add unmap and eviction stats to Secondary\n\nTrack and print stats on the number of memory unmaps and cache evictions\nin the MapAllocator. These statistics track total unmaps, as well as\nunmaps triggered by exceeding the maximum cache entry size or the\nmaximum number of entries in the cache.\n\nGitOrigin-RevId: 0d70ca384090b709eb651fe4ea43398d591e4711\n"
    },
    {
      "commit": "a5dd68eac46b366f954c333001fb6e4e8da68631",
      "tree": "f060b8be4b12aad26e15f2242abbf8cdda4c3a9c",
      "parents": [
        "2bd5a1b800aaf3b001f0f059995d7a1e55f8f42e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Jul 20 18:08:53 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 20 11:10:29 2026 -0700"
      },
      "message": "[scudo] Remove dead code and other small cleanups. (#210454)\n\nSome dead code from the error info refactor is still around, so delete\nthat. Also cleanup spelling and spacing.\n\nModified the tests to use TestOnly functions so it\u0027s clear what is\nactually used.\n\nGitOrigin-RevId: f010423d3dfac774c6157686b6f14fb8d357c715\n"
    },
    {
      "commit": "2bd5a1b800aaf3b001f0f059995d7a1e55f8f42e",
      "tree": "a00cdb9e331d0cc7eae397430ae2b544ba728f5e",
      "parents": [
        "75b543441035166cfe18d1f38500dad9dca89b01"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Jul 09 20:08:28 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 09 13:10:55 2026 -0700"
      },
      "message": "[scudo] Small refactor of getTSDXXX functions. (#208127)\n\nSmall modification in getTSDAndLock() to have a single shared TSD avoid\nthe tryLock call. Also, remove some unnecessary comments.\n\nAdd a DCHECK in getTSDSlow and only check for \u003d\u003d 1 since a 0 number of\nshared TSDs is not supported.\n\nGitOrigin-RevId: 766161cd2fbe851bf1a67abe469269057aa854de\n"
    },
    {
      "commit": "75b543441035166cfe18d1f38500dad9dca89b01",
      "tree": "250a7eee71cda4ff7f917c3b03358d80e1d5c903",
      "parents": [
        "ecc9f1b5c6665c59264b41ab36d1beaeda355d74"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Jul 06 17:54:14 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 06 10:55:43 2026 -0700"
      },
      "message": "[scudo] Make death tests use SCUDO_XXX_DEATH_TEST. (#206196)\n\nOn Android, we want to disable the tombstone generation on expected\ncrashes to speed up running the tests. Also, this means that any\ntombstone files will be real crashes and it\u0027s not necessary to search\nfor the right tombstone if one of the tests crashes unexpectedly.\n\nIn order to do the above, add SCUDO_EXPECT_DEATH_TEST and\nSCUDO_ASSERT_DEATH_TEST that will disable tombstoned on Android but do\nnothing on all other platforms.\n\nGitOrigin-RevId: 96904e83cf69b0a02a5fb7dece9b258f562205e0\n"
    },
    {
      "commit": "ecc9f1b5c6665c59264b41ab36d1beaeda355d74",
      "tree": "2c523388888b960b09c8862fee72afc892d31a38",
      "parents": [
        "c44dab6ac7acc98ef3fb20175477b3021ce6d0be"
      ],
      "author": {
        "name": "Aditya Medhane",
        "email": "sherlockedaditya@gmail.com",
        "time": "Mon Jul 06 19:02:40 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 06 06:35:44 2026 -0700"
      },
      "message": "[scudo] Remove internal linkage from LargeBlock header helpers (NFC) (#207708)\n\n`addHeaderTag` and `getHeader` are static function templates in\n`secondary.h,` so any TU that includes the header without using them\ntrips `-Wunused-template`. Dropping static fixes the warning.\n\nPart of #202945.\n\nGitOrigin-RevId: dcf969eaf2c25048542d13946ca5ff65be5bc7ab\n"
    },
    {
      "commit": "c44dab6ac7acc98ef3fb20175477b3021ce6d0be",
      "tree": "cf9a2a8ca09d2d464e5514b7121be91c966b2c81",
      "parents": [
        "177644e7ef9865133ab3abe1654a5e94ab12dfb1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Jun 18 17:26:17 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 18 10:29:40 2026 -0700"
      },
      "message": "[scudo] Remove static error info functions. (#204483)\n\nAndroid was the only platform using the static error info functions. The\nlatest Android no longer uses them, so delete these unused functions.\n\nThese functions were implicitly exporting implementation details and\nmade it difficult to implement the multi-region code. This is the final\nstep to submit the multi-region code and modify how the region code\nworks.\n\nRemove the error info fuzzer since that was only necessary since so many\nvalues were passed in to the function.\n\nGitOrigin-RevId: 4a86da464e16b8f18d105e620268db3ef808da97\n"
    },
    {
      "commit": "177644e7ef9865133ab3abe1654a5e94ab12dfb1",
      "tree": "cce6330eb98dd4550667087fe79ca045c75336a6",
      "parents": [
        "f5a5b10988ba59095256354a93688f962feca008"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Jun 16 22:55:09 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 16 16:00:17 2026 -0700"
      },
      "message": "[scudo] For a realloc that shrinks, retag the extra. (#204031)\n\nWhen MTE is enabled and an allocations is reallocated from a large size\nto a smaller size, zero tag the rest of the allocation. Before this\nchange only a single granule after the new size was zero tagged. This\nadds extra security and use after realloc protection if code would have\ntried to read/write into the old size, past the new size.\n\nGitOrigin-RevId: 5639b33d7567bf648f27418b126f5f6f6292b730\n"
    },
    {
      "commit": "f5a5b10988ba59095256354a93688f962feca008",
      "tree": "a2fed337185406ab563662686507007756171696",
      "parents": [
        "564c4ecb75a21f628a941e4eaa8c32bf79a35d2f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Jun 16 19:33:52 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 16 12:37:34 2026 -0700"
      },
      "message": "[scudo] Use the unmap function on MemMap object. (#204001)\n\nThe current call does a unmap(MemMap), but the rest of the code is doing\nMemMap.unmap(XXX), so follow that pattern.\n\nGitOrigin-RevId: b2cb99971fb498a7ff458b3a1a4a4edf3c3bafd3\n"
    },
    {
      "commit": "564c4ecb75a21f628a941e4eaa8c32bf79a35d2f",
      "tree": "a853dd20adc430ee45f1d9a15f11c97672c30b36",
      "parents": [
        "a0a4a5a0f9538b5c800b9ebc3550beb59810fc89"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Jun 08 19:09:36 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 08 12:11:28 2026 -0700"
      },
      "message": "[scudo] Remove locks from getTSDAndLockSlow (#201960)\n\nChange the name of getTSDAndLockSlow to getTSDLockSlow and remove all\nlocks in favor of using atomic variables. Continue to lock when changing\nthe number of shared TSDs.\n\nThis change will remove thread contention and avoid blocking between\nthreads when this function is called.\n\nGitOrigin-RevId: 3136d62938e8cb8ac3ca735d7db741a0c0d11521\n"
    },
    {
      "commit": "a0a4a5a0f9538b5c800b9ebc3550beb59810fc89",
      "tree": "6bc3377b884449a2b7aecbcacf8f8d343cfe460f",
      "parents": [
        "f8566ffddeb848238983b06ac0324021302a25f6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Jun 04 19:06:10 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 04 12:12:18 2026 -0700"
      },
      "message": "[scudo] Log if randomness degrades. (#201482)\n\nGitOrigin-RevId: 19703323e0c75c63214fcc29272c118326b95ecc\n"
    },
    {
      "commit": "f8566ffddeb848238983b06ac0324021302a25f6",
      "tree": "22b82c3a27f4441de43a01e6b184365ae3fda144",
      "parents": [
        "a015bf67aa3c436331b8aedeba0d74e77718a511"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "george.burgess.iv@gmail.com",
        "time": "Wed Jun 03 12:55:02 2026 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 03 12:00:33 2026 -0700"
      },
      "message": "[compiler-rt] fix out-of-bounds access in scudo test (#201390)\n\nWhen `I \u003d 0`, we can\u0027t do `Array[I-1]`.\n\nCaught by libcxx hardening.\n\nGitOrigin-RevId: 5708e7fd9eca368b1b519c13a58360a15a263e4f\n"
    },
    {
      "commit": "a015bf67aa3c436331b8aedeba0d74e77718a511",
      "tree": "fb0737d057e4d9be0c5d490759e6938095b8e1c0",
      "parents": [
        "b45d932dfcdfe7d0b79a17413d9493f0a12a738c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Jun 02 04:49:18 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 21:50:30 2026 -0700"
      },
      "message": "[scudo] Return nullptr if a remap fails on linux. (#200537)\n\nAdd a check if a fixed address mmap doesn\u0027t return the expected address.\n\nAllow a remap call to fail if the mmap fails and returns a nullptr to\nthe caller.\n\nFix a place where if remap fails in the secondary, it didn\u0027t do\nanything. Now it will unmap the original entry on failure.\n\nGitOrigin-RevId: adcd285fc4047759e4014d6568d80bb64589aded\n"
    },
    {
      "commit": "b45d932dfcdfe7d0b79a17413d9493f0a12a738c",
      "tree": "503d2f4d9cdb4c367eb184eb4357f1757ce74206",
      "parents": [
        "271350e7a04a137871eda8443029e45f47a9365c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri May 29 19:18:47 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 12:20:50 2026 -0700"
      },
      "message": "[scudo] Improve performance of pushBlocks sort. (#200297)\n\nRan this on an Android device using both algorithms, the new algorithm\nis on average 10% faster, but gets to be 15% faster in some cases. This\nis an example of the speed-ups.\n\nAverage Operation Time    Maximum Operation Time   Name\n        326.9(ns)                 80770(ns)        PushBlocks New\n        365.9(ns)                108032(ns)        PushBlocks Old\n\nGitOrigin-RevId: c9cdbc4a30b83b8a8d100c19c4aba16c848b9dfb\n"
    },
    {
      "commit": "271350e7a04a137871eda8443029e45f47a9365c",
      "tree": "307f21189f19e5aaca998b10f333d26fa0deb4ec",
      "parents": [
        "f8ef2ae2f48fd31973ec440ea97ea3533b7e0ae3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu May 28 18:44:17 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 11:45:22 2026 -0700"
      },
      "message": "[scudo] Create a non-static getErrorInfo function. (#199770)\n\nCreate a getErrorInfo function that operates on the Allocator and\ndoesn\u0027t require passing in all of the extra information.\n\nAdd interface function __scudo_get_fault_error_info that calls this new\nfunction.\n\nAdd all needed functions to support the new getErrorInfo.\n\nThis is being added to replace the static version from Android that\nrequired linking in a copy of libscudo to use. This new version will be\nused directly from libc.\n\nGitOrigin-RevId: a0ac7521342567573da5b1e47c94f6199faada39\n"
    },
    {
      "commit": "f8ef2ae2f48fd31973ec440ea97ea3533b7e0ae3",
      "tree": "be6f41dd50f10e89480e715d1099dd14d25af568",
      "parents": [
        "12c33a30da9dccccd32211331ace1c6498aa5535"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Mon May 18 14:38:53 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 12:40:45 2026 -0700"
      },
      "message": "[scudo] Add unit test for StackDepot edge cases\n\nThis increases test coverage for stack_depot.h to 100%.\n\nGitOrigin-RevId: 0b4a877e0e37f28d5b4be589bed055d149ac88dd\n"
    },
    {
      "commit": "12c33a30da9dccccd32211331ace1c6498aa5535",
      "tree": "8cf85fbf4a4059b42f3b83c907c42e9b503814d4",
      "parents": [
        "8b655afdc17a603d4e008bfd5a69c873d13b17b8"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Wed May 13 17:11:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 17:15:30 2026 -0700"
      },
      "message": "[scudo] Add test for initFlags()\n\nAdd a test case to verify that initFlags() correctly reads the\nSCUDO_ALLOCATION_RING_BUFFER_SIZE environment variable and updates the\ncorresponding flag. This increases line coverage for flags.cpp to 100%.\n\nGitOrigin-RevId: c5f84148725e69bbc43831aaa88158db50f3722d\n"
    },
    {
      "commit": "8b655afdc17a603d4e008bfd5a69c873d13b17b8",
      "tree": "14322a0e6571939308270cced993deb84a2f103c",
      "parents": [
        "f432efd25d58b6b7e4853b361fb2da79e2732132"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Wed May 13 15:57:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 16:00:40 2026 -0700"
      },
      "message": "[scudo] Add unit tests for optional config flags\n\nThis patch adds checks for all optional configuration flags defined in\nallocator_config.def to allocator_config_test.cpp. This increases the\ncode coverage of allocator_config_wrapper.h by exercising the template\ninstantiations for these optional flags.\n\nGitOrigin-RevId: 8536f609854abb96d02a22a20a2772c8ee3337bc\n"
    },
    {
      "commit": "f432efd25d58b6b7e4853b361fb2da79e2732132",
      "tree": "1259e602f6c329fda5baf18dcf5001aec8509667",
      "parents": [
        "6b880e9d72b71107780f5ff581b1cf7ca1a3ee0b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue May 12 23:40:59 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 16:45:21 2026 -0700"
      },
      "message": "[scudo] Add a generic allocation fuzzer. (#197317)\n\nThe fuzzer disabled memory tagging if supported since there is an\nunknown problem with trying to create an allocator instance and doing\nraw allocate/deallocate calls.\n\nGitOrigin-RevId: d3831ef1eb178caea5298ad945369ee9eb7670f0\n"
    },
    {
      "commit": "6b880e9d72b71107780f5ff581b1cf7ca1a3ee0b",
      "tree": "c25cb1f4872e4a07ece6e7f370a546b9e056928c",
      "parents": [
        "28147d8595940c0491e35576f28de1a368050d97"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Tue May 12 13:40:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 13:45:37 2026 -0700"
      },
      "message": "[scudo] Move MemMap tests from to map_test.cpp\n\nThe tests VerifyGetResidentPages, VerifyReleasePagesToOS, and Zeros test\nMemMapT functionality and fit better in map_test.cpp where other MemMapT\ntests reside.\n\nGitOrigin-RevId: 939912e66b8e36f1564ecef21ed9fa4b9440fe67\n"
    },
    {
      "commit": "28147d8595940c0491e35576f28de1a368050d97",
      "tree": "ecc920803772e92c1cf6ddd168ee992877427459",
      "parents": [
        "94dff17c2076ccd0a9d951d60015bbf6a229c7b5"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Mon May 11 15:33:45 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 15:35:55 2026 -0700"
      },
      "message": "[scudo] Add unit tests for common functions\n\nThis patch adds unit tests for isPowerOfTwo, computePercentage, and\nisAlignedSlow in common_test.cpp. These additions increase the test\ncoverage for common.h to 100%.\n\nGitOrigin-RevId: 0d552b1ffb5ac80bfaadd7d43afef04185888a00\n"
    },
    {
      "commit": "94dff17c2076ccd0a9d951d60015bbf6a229c7b5",
      "tree": "a4528f555455ca896db634c918e789712add3db0",
      "parents": [
        "b74f8111308d94d46371ed6cf4ea5050f2002f06"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Wed May 06 12:06:16 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 10:11:24 2026 -0700"
      },
      "message": "[scudo] Dumping allocator config when printStats()\n\nSo far printStats() dumps partial information of the allocator config.\nGiven that user is able to have custom config, we want to dump all the\nconfigurations to reduce variances while reviewing the stats.\n\nGitOrigin-RevId: c52158612b4563711ae60a92231a53d79c35545e\n"
    },
    {
      "commit": "b74f8111308d94d46371ed6cf4ea5050f2002f06",
      "tree": "3f560847522452fb58470cbf8faf7e6426273efd",
      "parents": [
        "9c8ebccf439b53fd7eb9752b868ba161e3cadbaf"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Fri May 01 14:32:23 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 01 12:35:14 2026 -0700"
      },
      "message": "[scudo] Add append overloads for integers and bool\n\nThis patch adds overloads for append to support directly appending s32,\ns64, u32, u64, and bool values without requiring format strings. This\nsimplifies usage and avoids the overhead of parsing format strings for\nsimple type appends.\n\nGitOrigin-RevId: f242ad87ff4496283896ae9c492dd67e511c501a\n"
    },
    {
      "commit": "9c8ebccf439b53fd7eb9752b868ba161e3cadbaf",
      "tree": "d80ed3a6836b23da29e40e33c82d14772b33e990",
      "parents": [
        "7b0eb4e1915565dce4e336b9dbedb22b02ee1dbe"
      ],
      "author": {
        "name": "Tamas Kaman",
        "email": "tamas.kaman@arm.com",
        "time": "Thu Apr 23 20:14:44 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 11:16:53 2026 -0700"
      },
      "message": "[scudo] Adjust PROT_MTE page count for secondary allocator (#192202)\n\nSecondary allocator currently mmaps 4 pages as PROT_MTE in case MTE is\nenabled in the allocator for Aarch64.\nSince only the headers are tagged, this is unnecessary, two pages are\nsufficient in worst case scenario.\n\nGitOrigin-RevId: 8c10815313231c629999a3f54b48f80eb6715e94\n"
    },
    {
      "commit": "7b0eb4e1915565dce4e336b9dbedb22b02ee1dbe",
      "tree": "fd3fc7cee3effc5ad2b928850050815dd70e6bf4",
      "parents": [
        "e05ade1d62c4666d9bee1fa3f76c2ed6dbce83be"
      ],
      "author": {
        "name": "Fabio D\u0027Urso",
        "email": "fdurso@google.com",
        "time": "Tue Apr 14 15:22:48 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 14 06:25:27 2026 -0700"
      },
      "message": "[scudo] Do not define some entrypoints on Fuchsia (#191826)\n\nThese entrypoints were defined separately in wrappers_c_bionic.cpp\n(which Fuchsia did not include in the build) before #190857 and,\ntherefore, were not exposed to Fuchsia\u0027s Scudo clients.\n\nWith #190857, they have been merged into the main wrappers_c.cpp file,\nremoving this separation.\n\nThis commit makes them conditionally-defined to not be building for\nFuchsia, to restore the pre-#190857 ABI.\n\nGitOrigin-RevId: 4c7c3eaf3289845208942a10f8f7494880f93197\n"
    },
    {
      "commit": "e05ade1d62c4666d9bee1fa3f76c2ed6dbce83be",
      "tree": "1f612f1cf0aedcd3ee0928e53340de96f47eaa48",
      "parents": [
        "95d461a999dbb49fc8fa1936f986d109e1b4a641"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Apr 10 17:50:34 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 10 10:55:32 2026 -0700"
      },
      "message": "[scudo] Remove fill when realloc to smaller size. (#191321)\n\nIn the reallocate function, when there is a realloc smaller than the\ncurrent size, the code would attempt to fill in the bytes after the new\nsize. This doesn\u0027t really add any extra security and is mostly a waste\nof time, so skip it.\n\nRemove the test that verifies this functionality.\n\nGitOrigin-RevId: f0004d8143b346e0f5a13b4021f348165e27fb9a\n"
    },
    {
      "commit": "95d461a999dbb49fc8fa1936f986d109e1b4a641",
      "tree": "9de7a05e3a255faab007dd0c07dfddbaaca46bab",
      "parents": [
        "0e4fed3cca9df351f3dc2d5c5e1cc94841fd0076"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Apr 09 19:02:11 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 09 12:06:07 2026 -0700"
      },
      "message": "[scudo] Refactor the wrapper code into a single file. (#190857)\n\nAllow using a define to create a prefix rather than trying to use\nandroid/bionic checks.\n\nGitOrigin-RevId: b742ec91c0876fc5f9fb85aceecb67c22021b69d\n"
    },
    {
      "commit": "0e4fed3cca9df351f3dc2d5c5e1cc94841fd0076",
      "tree": "150cbd2cabde97999fd9de6f42ac3ddf997bc7d0",
      "parents": [
        "1e14f920e811cb727d4b0114cbcb97cb71cf22c3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Apr 01 23:44:31 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 01 16:51:08 2026 -0700"
      },
      "message": "[scudo] Fix reallocate for MTE. (#190086)\n\nFor MTE, we can\u0027t use the whole size or we might trigger a segfault.\nTherefore, use the exact size when MTE is enabled or the exact usable\nsize parameter is true.\n\nAlso, optimize out the call to getUsableSize and use a simpler\ncalculation.\n\nGitOrigin-RevId: 7c260d3966534031f9fe3a35b54887f6d979606d\n"
    },
    {
      "commit": "1e14f920e811cb727d4b0114cbcb97cb71cf22c3",
      "tree": "aaa3471540433d62f41b35c2b7abad3a4f757ed8",
      "parents": [
        "ac1a2894d0e99c010beeab0c9d2cef54e47e7084"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Wed Apr 01 12:30:47 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 01 10:36:01 2026 -0700"
      },
      "message": "[scudo] Ensure that reallocate copies everything\n\ngetUsableSize returns the actual capacity of the underlying block, which\nmay be larger than the size originally requested by the user. If the\nuser writes data into this extra space accessible via getUsableSize and\nsubsequently calls reallocate, the existing implementation only copies\nthe original requested number of bytes. This resulted in data loss for\nany information stored beyond the requested size but within the usable\nbounds.\n\nGitOrigin-RevId: 7c4b6dee7401769a359d2922629f7cd0103d6c72\n"
    },
    {
      "commit": "ac1a2894d0e99c010beeab0c9d2cef54e47e7084",
      "tree": "3b7aaed4d33668cc8dc7f5c890ed3f12cbb39b20",
      "parents": [
        "d7ee853bb18511842e2903bceee783760aafc89f"
      ],
      "author": {
        "name": "Aiden Grossman",
        "email": "aidengrossman@google.com",
        "time": "Fri Mar 27 12:15:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 27 12:18:03 2026 -0700"
      },
      "message": "[Scudo] Disable ScudoCombinedTests.NewType (#189070)\n\nThis is failing in some configurations on AArch64 Linux. Given there are\na lot of follow-up commits that makes this hard to revert, just disable\nit for now pending future investigation.\n\nGitOrigin-RevId: df6d6c9cd14113637cae8d4f51f9a05a09e7dd50\n"
    },
    {
      "commit": "d7ee853bb18511842e2903bceee783760aafc89f",
      "tree": "ca9beaf429211fe61c96ab8e779841241fb23754",
      "parents": [
        "f0bb9de78684ca444761263d5b0f7e0d6c585b1f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Mar 26 19:32:56 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 26 12:35:35 2026 -0700"
      },
      "message": "[scudo] Add Last entry to ReleaseToOS enum. (#188645)\n\nThis allows static asserts to be set in tracing code that might use the\nReleaseToOS values as indexes.\n\nThis would have caused a compile failure instead of a runtime crash when\nI added the use of a new ReleaseToOS value.\n\nGitOrigin-RevId: 6b3556a6ea2fda31be3a615119d1c8d89452ce36\n"
    },
    {
      "commit": "f0bb9de78684ca444761263d5b0f7e0d6c585b1f",
      "tree": "112a5975a011ba598facde969343d0c7953feae3",
      "parents": [
        "46a3f6ecbd6cdbdd1d7488aaf724a122888aa052"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Mar 25 17:48:22 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 25 10:51:20 2026 -0700"
      },
      "message": "[scudo] Remove some android wrapper checking. (#188339)\n\nTests for Android specific behavior don\u0027t really belong here since it is\naffected by the config which is not necessarily the same on Android.\nThere are already tests that the config options and flag options work\nproperly. Android wrapper tests belong to Android.\n\nGitOrigin-RevId: a3260f658242ff8613f9a852ef95c6f1e644c95a\n"
    },
    {
      "commit": "46a3f6ecbd6cdbdd1d7488aaf724a122888aa052",
      "tree": "ce7e69e5052108b8fe70bc677c95cbf177a4d892",
      "parents": [
        "7924f90e31ee461f88b581dc1ef1409b3b15f5f3"
      ],
      "author": {
        "name": "Fabio D\u0027Urso",
        "email": "fdurso@google.com",
        "time": "Wed Mar 25 11:46:52 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 25 03:50:02 2026 -0700"
      },
      "message": "[scudo] Use portable TEST_SKIP macro (#188045)\n\nWhich expands to ZXTEST_SKIP on Fuchsia.\n\nGitOrigin-RevId: 1d2f14f625cf3fd2025e45ea584440a8e7e0cc26\n"
    },
    {
      "commit": "7924f90e31ee461f88b581dc1ef1409b3b15f5f3",
      "tree": "e00922b69b3cd87095f2cdf3c99ae1eb35a33b4a",
      "parents": [
        "41b4445c550476ffb8ab3c2605b2390c1d0c6e98"
      ],
      "author": {
        "name": "Michael Jones",
        "email": "michaelrj@google.com",
        "time": "Fri Mar 20 16:46:38 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 20 16:50:44 2026 -0700"
      },
      "message": "[compiler-rt] Add bitmask to fix warning (#187812)\n\nAfter #186881 was merged the gcc libc bots started complaining about the\nconversion from u8 to 2 bit integer being unsafe (see:\nhttps://lab.llvm.org/buildbot/#/builders/131/builds/42788). This PR\nadds a bitmask that fixes the warning.\n\nGitOrigin-RevId: 6891a6ef0e2466ffb8a921d7f58934ef464f137a\n"
    },
    {
      "commit": "41b4445c550476ffb8ab3c2605b2390c1d0c6e98",
      "tree": "0c1637a92910c4e5c6b4ace371e9f8713be94017",
      "parents": [
        "191b1cfea426466f7cb65d99e051bf6722681e23"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Mar 20 22:32:16 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 20 15:33:10 2026 -0700"
      },
      "message": "[scudo] Make the default for size/align checks to not die. (#187799)\n\nGitOrigin-RevId: 8cc0124508a55de25ccb2422ec9a2a95f1bc8020\n"
    },
    {
      "commit": "191b1cfea426466f7cb65d99e051bf6722681e23",
      "tree": "72e3269ec0a28a4db303be6f18a3f6302ffc832b",
      "parents": [
        "6a714fe82eb97c10eba15001671432b3b61f3cc1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Mar 20 20:26:35 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 20 13:30:16 2026 -0700"
      },
      "message": "[scudo] Add free_sized and free_aligned_sized (#186881)\n\nAdd one new flag, dealloc_align_mismatch that turns on/off alignment\nchecks. Add three new config parameters, one for deallocate type\nmismatch (such as abort on new/free if true), one for checking if the\nsize parameter matches on dealloc and one for checking if the alignment\nis correct on a dealloc.\n\nAdd extra flags to be passed for to indicate to do an align/size check.\n\nUpdate report functions to better indicate the errors. Add unit tests\nfor all of these.\n\nThis is based on these upstream cls by jcking:\n\nhttps://github.com/llvm/llvm-project/pull/147735\nhttps://github.com/llvm/llvm-project/pull/146556\n\nGitOrigin-RevId: 1b44e34b18e8823c858036087407c5e5976cec06\n"
    },
    {
      "commit": "6a714fe82eb97c10eba15001671432b3b61f3cc1",
      "tree": "20d233591199eb307173a1aecf3cfac7825768f3",
      "parents": [
        "6823839c5aabe745b579e80f8251e89ec100c9d0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Mar 12 20:19:33 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 12 13:25:13 2026 -0700"
      },
      "message": "[scudo] Display flags on secondary cache entries. (#185786)\n\nGitOrigin-RevId: dae2923901fa456d6b5a39426ceb67185835a427\n"
    },
    {
      "commit": "6823839c5aabe745b579e80f8251e89ec100c9d0",
      "tree": "d0e9ca240b0433a3d03e17b27799f87aaa929a28",
      "parents": [
        "3f3360788f7ceae1c9b3b75ad22a0f88ed0ba0b6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Mar 09 19:50:32 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 09 12:53:47 2026 -0700"
      },
      "message": "[scudo] Use a fixed format for the milliseconds in latest release. (#185097)\n\nGitOrigin-RevId: 3e9808befb70a73593d6d98cf744018b4ecab89c\n"
    },
    {
      "commit": "3f3360788f7ceae1c9b3b75ad22a0f88ed0ba0b6",
      "tree": "c00172085ae2af87cebd5026a2ff55dc62c20d9e",
      "parents": [
        "0c616863e3a7c01fe35606f124b979c4f41ca41b"
      ],
      "author": {
        "name": "Fabio D\u0027Urso",
        "email": "fdurso@google.com",
        "time": "Mon Mar 09 18:48:53 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 09 10:50:36 2026 -0700"
      },
      "message": "[scudo] Add missing class name specifier in mem_map_fuchsia (#185389)\n\nGitOrigin-RevId: ae8f614a0cb63081487506227e373c05bfc45e0c\n"
    },
    {
      "commit": "0c616863e3a7c01fe35606f124b979c4f41ca41b",
      "tree": "e551c954f6fa028def91fb93d6398a997b2cb7d7",
      "parents": [
        "9fe4cff9c9caa2be86429a2c6c3e859559e7a842"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Thu Mar 05 12:38:06 2026 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 05 10:40:11 2026 -0800"
      },
      "message": "[scudo] Move getResidentPages function (#183138)\n\nMoving getResidentPages out of linux.cpp and adding it to MemMapBase\n\nGitOrigin-RevId: ea65e8593e21b055dfb1f5f74ea7a5618a6fa275\n"
    },
    {
      "commit": "9fe4cff9c9caa2be86429a2c6c3e859559e7a842",
      "tree": "15cbaac0ee698f81bec0d6237735e516014a344f",
      "parents": [
        "e27eeddc1c55ebe4b154e6d1a7a7fee1c8b31632"
      ],
      "author": {
        "name": "Alexey Samsonov",
        "email": "vonosmas@gmail.com",
        "time": "Thu Feb 26 16:14:15 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Feb 26 16:15:52 2026 -0800"
      },
      "message": "[scudo] Add reallocarray C wrapper. (#183385)\n\n`reallocarray()` is a POSIX extension to C standard which wraps\n`realloc` function and adds `calloc`-like overflow detection. It is\navailable in glibc and some other standard library implementations. Add\n`reallocarray` to the list of Scudo C wrappers, so that the code that\ndepends on `reallocarray` presence will continue to work.\n\nGitOrigin-RevId: 7c022af37ef2bc9deb60c6be93b7925028d39e8a\n"
    },
    {
      "commit": "e27eeddc1c55ebe4b154e6d1a7a7fee1c8b31632",
      "tree": "dcecd699ba8622d195c95fa3405aafc1f2827cb0",
      "parents": [
        "fe61acb34b83fd0ea6d157d72e0eb026fa04ab5e"
      ],
      "author": {
        "name": "Tamas Kaman",
        "email": "tamas.kaman@arm.com",
        "time": "Fri Feb 27 00:27:11 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Feb 26 15:31:31 2026 -0800"
      },
      "message": "[scudo] Change header tagging for the secondary allocator (#182487)\n\nWhen secondary allocator allocates a new chunk, the allocation is\nprepended with a chunk header (common with the primary allocator)\nand large header (only used for secondary).\nOnly the headers are tagged, the data is not, and the headers are\ntagged individually as different tags are used for them.\nIn the current implementation while tagging the large header the unused\narea is tagged with it, so the allocator can tag up to a page size (in\nworst case), which is costly and does not bring security benefit (as the\narea is unused).\nWith the current fix we can get rid of around 97-98% of the tagging for\nthe secondary allocator, measured with random benchmarks.\n\nCo-authored-by: Christopher Ferris \u003ccferris1000@users.noreply.github.com\u003e\nGitOrigin-RevId: e55945556a1e99a7d6618735873d513a0239b2a0\n"
    },
    {
      "commit": "fe61acb34b83fd0ea6d157d72e0eb026fa04ab5e",
      "tree": "34b2580f88ba8dfdb077782236cbab371522f7b5",
      "parents": [
        "0baba04ac95fd69c1312482126b463fea469f5e3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Feb 11 14:22:29 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 11 14:25:23 2026 -0800"
      },
      "message": "[scudo] Add new fast purge option. (#175266)\n\nThis adds a new option to do a faster of a purge.\n\nWhen doing a release to OS due to a purge call, if another thread is\nalso doing a release, the call can be blocked while that operation\nconcludes. In some cases, code wants a fast version that releases as\nfast as possible and the call will not block.\n\nFor example, on Android, when destroying a Bitmap a purge occurs to save\nmemory. But this can cause some jank if the purge takes too long.\n\nIn the future, I envision that this option will also do a calculation to\nstop purging after some cutoff value to avoid being blocked in this call\nfor too long.\n\nGitOrigin-RevId: a816f922fa73828b24008a8cdd0a28448eed68ef\n"
    },
    {
      "commit": "0baba04ac95fd69c1312482126b463fea469f5e3",
      "tree": "f1b879e9b11b986ac8f67468822133b7f51da787",
      "parents": [
        "949b4530afd4c9f5435319c4378f3d5acf63956e"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Mon Feb 02 14:35:02 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 02 14:41:42 2026 -0800"
      },
      "message": "[scudo] Add resident pages info to getStats (#178969)\n\nAdding resident pages field to the primary allocator\u0027s getStats function\nmakes it consistent with the secondary allocator\u0027s getStats function.\n\nGitOrigin-RevId: c3a2597f8ca424d7cab3568d19fbb61fd154104a\n"
    },
    {
      "commit": "949b4530afd4c9f5435319c4378f3d5acf63956e",
      "tree": "bc17c13b479784ca3afdd7146a75959546820597",
      "parents": [
        "a3e1a9590585e3619cf4984002f4195538b405e3"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Thu Jan 29 22:19:27 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 29 14:20:47 2026 -0800"
      },
      "message": "[scudo] Add missing space to getStats (#178537)\n\nGitOrigin-RevId: 8d26233e3d5163d672018ec803276883081dc0dc\n"
    },
    {
      "commit": "a3e1a9590585e3619cf4984002f4195538b405e3",
      "tree": "f416521f62289a10e1cd290308ad21ad1cd6c6a7",
      "parents": [
        "90c28844c1c730ed05b214cf88e218f9652cf9cc"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Jan 23 13:28:33 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 23 13:31:29 2026 -0800"
      },
      "message": "[scudo] Add flags to secondary cache entries. (#177506)\n\nInstead of setting a cache entry back to read-write based on whether MTE\nis enabled, add a flag that indicates if this entry was made\ninaccessible. On Android, we have seen strange crashes were MTE is\ndisabled for a process, but the cache entry is inaccessible, causing an\naccess error. This indicates MTE was enabled at some point, then\ndisabled again. There is likely some race, or method to disable without\nmaking inaccessible entries read-writable again. Adding the flags should\navoid this happening in the future.\n\nRemove the resetting of the secondary cache entries when disabling MTE\nsince it can be done as necessary.\n\nThis change will also allow us to always make the secondary cache\nentries inaccessible in the future to increase security measures even\nwhen MTE is not enabled.\n\nCurrent unit tests already cover this change.\n\nGitOrigin-RevId: be318eb63bf7c8201375a579a671cb63624d93e2\n"
    },
    {
      "commit": "90c28844c1c730ed05b214cf88e218f9652cf9cc",
      "tree": "582399188d3836a5ecf0e887e0df9ab4c1d340a5",
      "parents": [
        "16b34d18d857102cb54ce183b0e3f7d285b6cfad"
      ],
      "author": {
        "name": "Fabio D\u0027Urso",
        "email": "fdurso@google.com",
        "time": "Mon Dec 29 18:37:48 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Dec 29 09:40:30 2025 -0800"
      },
      "message": "[scudo] Use setenv instead of putenv in ScudoCombinedTest.ZeroOnDeallocEnabledAndFlag (#173423)\n\nThis solves a stack-use-after-scope reported by AddressSanitizer within\nthe unsetenv call at end of the test, due to the \"Options\" buffer, that\nwe allocate on the stack, having already gone out of scope.\n\nUnlike putenv, which stores the pointer to the passed string directly in\nthe environment, setenv creates an internal copy.\n\nGitOrigin-RevId: 5c19f77a7e0c4b35c0efb511a7d9e2e436335e61\n"
    },
    {
      "commit": "16b34d18d857102cb54ce183b0e3f7d285b6cfad",
      "tree": "aa56c821f8f6bdfcdaa3f876d95dd13c8882dc9f",
      "parents": [
        "2ee2713eb109c2cf589448111b8221ddaeeef42e"
      ],
      "author": {
        "name": "piwicode",
        "email": "pierre.labatut@gmail.com",
        "time": "Wed Dec 17 23:04:39 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 14:06:03 2025 -0800"
      },
      "message": "[scudo] Add an option to zero memory on deallocation. (#142394)\n\nWhen all the blocks of a page are unused, the page will be full of zero\nand decommitted on operating systems that scan the memory.\n\nChange-Id: I278055d82057090b0a04d812b49cf93fdf467478\n\nCo-authored-by: Christopher Ferris \u003ccferris1000@users.noreply.github.com\u003e\nGitOrigin-RevId: 316116e0cddea53bbed0b6536f24a9dd24067c00\n"
    },
    {
      "commit": "2ee2713eb109c2cf589448111b8221ddaeeef42e",
      "tree": "ff41ff1d869f3b9a738920780e7ab0a059a11b7e",
      "parents": [
        "b7e541ba3c44529fa16f5ef7e848720ff9254d96"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Thu Dec 11 17:31:34 2025 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:12:45 2025 -0800"
      },
      "message": "[scudo] Fix typo in multiple files (#171925)\n\nGitOrigin-RevId: f36792b2a391a1f8c5c83ad0770304ed25e249ce\n"
    },
    {
      "commit": "b7e541ba3c44529fa16f5ef7e848720ff9254d96",
      "tree": "3fc6f47004a91a2e9d47ec68c7875eadf291ea9f",
      "parents": [
        "bedf425147e53784aae04ba2b2d98fca0d058582"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Dec 11 15:29:08 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:12:39 2025 -0800"
      },
      "message": "[scudo] Show the resident pages from the secondary cache. (#170568)\n\nMove the test utility to get the resident pages into linux.cpp.\n\nAdd some specific tests for this function.\n\nAdd displaying of resident pages from in the secondary cache when\ncalling getStats.\n\nGitOrigin-RevId: efd472c88d7bed50615eab6db844a766d8f1964f\n"
    },
    {
      "commit": "bedf425147e53784aae04ba2b2d98fca0d058582",
      "tree": "83f91b2b0713cefa9baf77103d5220646e02948e",
      "parents": [
        "7bd55e0ee4dbcc4631ab3a0985dad1dddda03ae2"
      ],
      "author": {
        "name": "Sadaf Ebrahimi",
        "email": "sadafebrahimi@google.com",
        "time": "Tue Dec 09 23:08:44 2025 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:12:33 2025 -0800"
      },
      "message": "[scudo] Add last release time info to getStats (#170902)\n\nKnowing when the last page release happened can help us figure out if\nthe page release is skipped or not.\n\nGitOrigin-RevId: 570bceaa19829cb5943187b8ed5699a14a74042b\n"
    },
    {
      "commit": "7bd55e0ee4dbcc4631ab3a0985dad1dddda03ae2",
      "tree": "ae31bde97523e971e7d4a2750cfa20e5e19e511c",
      "parents": [
        "b0042494d1ce002a420b56d6d00cc93f179b04b1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Dec 09 13:30:46 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:12:26 2025 -0800"
      },
      "message": "[scudo] Refactor initialization of TSDs. (#169738)\n\nInstead of getting a lock and then checking/modifying the Initialization\nvariable, make it an atomic. Doing this, we can remove one of the\nmutexes in shared TSDs and avoid any potential lock contention in both\nshared TSDs and exclusive TSDs if multiple threads do allocation\noperations at the same time.\n\nAdd two new tests that make sure no crashes occur if multiple threads\ntry and do allocations at the same time.\n\nGitOrigin-RevId: 64ee4bf73411d1462fec0c2c2b5c44aaaa3a1903\n"
    },
    {
      "commit": "b0042494d1ce002a420b56d6d00cc93f179b04b1",
      "tree": "8b68dc3d475631aefc0bcefbdaed821647885c7e",
      "parents": [
        "a23456515887ef8397e6fff74464542ac09b5af8"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Nov 25 13:20:09 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:12:19 2025 -0800"
      },
      "message": "[scudo] Lock/unlock MutexTSDs in disable/enable. (#169440)\n\nIt is possible that a fork could occur while MutexTSDs is being held and\nthen cause a deadlock in a forked process when something attempts to\nlock it again. Instead add it to the enable/disable list of mutexes.\n\nGitOrigin-RevId: 074d17e9c8cbc6f22e65ba1211787453ea629ccb\n"
    },
    {
      "commit": "a23456515887ef8397e6fff74464542ac09b5af8",
      "tree": "b3d3c8a074b49ed519ea61fc4bf4b51d4b956822",
      "parents": [
        "511b8f39ed6e75b4957955e19877b8fa9da25483"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Nov 24 15:03:08 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:12:13 2025 -0800"
      },
      "message": "[scudo] Only print stats when the test fails. (#168000)\n\nWhen running the tests on other platforms, printing the stats on all of\nthe passing tests makes it hard to see failure output. Therefore, this\nchange only prints the stats if the test actually fails.\n\nGitOrigin-RevId: 420f62e05cc8c54253f52bb99f9b44ad5b9c4f89\n"
    },
    {
      "commit": "511b8f39ed6e75b4957955e19877b8fa9da25483",
      "tree": "e22d6520ffe30a90c239731beb2ac41a588952e2",
      "parents": [
        "56dda81ac28cee230a062ab63f45c2dfc5428f5e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Nov 21 09:08:31 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:12:06 2025 -0800"
      },
      "message": "[scudo] Small cleanup of memory tagging code part 2. (#168807)\n\nMake the systemSupportsMemoryTagging() function return even on system\nthat don\u0027t support memory tagging. This avoids the need to always check\nif memory tagging is supported before calling the function.\n\nModify iterateOverChunks() to call useMemoryTagging\u003c\u003e(Options) to\ndetermine if mte is supported. This already uses the cached check of\nsystemSupportsMemoryTagging() rather than directly calling that\nfunction.\n\nUpdated the code that calls systemSupportsMemoryTagging().\n\nGitOrigin-RevId: b27749d8c7191f894e337a402344af7a9de9a5b0\n"
    },
    {
      "commit": "56dda81ac28cee230a062ab63f45c2dfc5428f5e",
      "tree": "8014952afeb7a14bed037b15fe15edd9834eab10",
      "parents": [
        "bf7616d2a928f6733437a40a1b24e3239d2412b5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Nov 17 15:25:33 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:11:59 2025 -0800"
      },
      "message": "[scudo] Skip test if mlock fails. (#168448)\n\nSome linux versions might not support the mlock call, so skip that part\nof the test if the mlock fails.\n\nGitOrigin-RevId: 7a14ef0293ba8eb6942118e560b8bb7208822291\n"
    },
    {
      "commit": "bf7616d2a928f6733437a40a1b24e3239d2412b5",
      "tree": "bc4574f2a062758b804b62ce0dbd5d14862d560a",
      "parents": [
        "263882b60eb8b1c1bf8df68b473e0206e459525b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Nov 17 10:59:04 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:11:52 2025 -0800"
      },
      "message": "[scudo] Fix wrong return type. (#168157)\n\nGitOrigin-RevId: 7672a5cee12a299a083b93a6d304b27ab3f4707f\n"
    },
    {
      "commit": "263882b60eb8b1c1bf8df68b473e0206e459525b",
      "tree": "3af5cd95425f98fc6c2040bbaa223103914a7b79",
      "parents": [
        "00a2098b03e0689b3030f6243e8c9a893df726d8"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Nov 13 13:01:28 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:11:44 2025 -0800"
      },
      "message": "[scudo] Always zero on linux even if the memory cannot be released. (#167788)\n\nIf a caller has locked memory, then the madvise call will fail. In that\ncase, zero the memory so that we don\u0027t return non-zeroed memory for\ncalloc calls since we thought the memory had been released.\n\nGitOrigin-RevId: 3e28992b304a0c5e3d5690b7bb0827dee02c3af8\n"
    },
    {
      "commit": "00a2098b03e0689b3030f6243e8c9a893df726d8",
      "tree": "07ad6a5318d8715eae1a3816348fe9a0ecff7fab",
      "parents": [
        "0ff428348d90e0e1681cf2f6dd937c16bb8f735d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Nov 10 16:48:19 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:11:34 2025 -0800"
      },
      "message": "Revert \"[scudo] Small cleanup of memory tagging code.\" (#167425)\n\nReverts llvm/llvm-project#166860\n\nThe local static variable causes build failures.\n\nGitOrigin-RevId: 9c7fe126f48f87c3cf73f4bc83a47820b320ed48\n"
    },
    {
      "commit": "0ff428348d90e0e1681cf2f6dd937c16bb8f735d",
      "tree": "0f4f8842481edab24f1459fcf24bb6a3bb6d7926",
      "parents": [
        "db7430026697dc14e2098bb621eb6e5f79304e50"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Nov 10 14:17:23 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 12:11:29 2025 -0800"
      },
      "message": "[scudo] Small cleanup of memory tagging code. (#166860)\n\nMake the systemSupportsMemoryTagging() function return even on system\nthat don\u0027t support memory tagging. This avoids the need to always check\nif memory tagging is supported before calling th function.\n\nMake systemSupportsMemoryTagging() cache the getauxval return value\ninstead of calling the function every time.\n\nUpdated the code that calls systemSupportsMemoryTagging().\n\nGitOrigin-RevId: 046ae855360614c5980d0ced0c55b5de507bd9ad\n"
    },
    {
      "commit": "db7430026697dc14e2098bb621eb6e5f79304e50",
      "tree": "07ad6a5318d8715eae1a3816348fe9a0ecff7fab",
      "parents": [
        "1ad035c95e8e30dca2c6573194a440019befa1d6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Nov 03 14:31:11 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 03 14:34:31 2025 -0800"
      },
      "message": "[scudo] Add config option to modify get usable size behavior (#158710)\n\nCurrently, Scudo always returns the exact size allocated when calling\ngetUsableSize. This can be a performance issue where some programs will\nget the usable size and do unnecessary calls to realloc since they think\nthere isn\u0027t enough space in the allocation. By default, usable size will\nstill return the exact size of the allocation.\n\nNote that if the exact behavior is disabled and MTE is on, then the code\nwill still give an exact usable size.\n\nGitOrigin-RevId: 0e3612e751381d35a3826a67527845e23bbd22af\n"
    },
    {
      "commit": "1ad035c95e8e30dca2c6573194a440019befa1d6",
      "tree": "80139326f43794a74a441ee50049f789fba6172e",
      "parents": [
        "6cf94e14b28c548810400c3c3d9c2ce3033496c7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Fri Oct 24 11:59:24 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 24 12:00:47 2025 -0700"
      },
      "message": "[scudo] Secondary release to OS uses LRU to scan. (#163691)\n\nBefore this change, the code would scan the entire set of cached entries\nto find ones to be released. Now, it uses the LRUEntries list to iterate\nover the live cached entries. In addition, remove the OldestTime\nvariable and replace it with OldestPresentEntry which will always be the\noldest entry in the LRU that has Time non-zero.\n\nGitOrigin-RevId: dddcb84f152b99dfe7e117c02ab506c6c14b2f2b\n"
    },
    {
      "commit": "6cf94e14b28c548810400c3c3d9c2ce3033496c7",
      "tree": "11424f90cbd19f320ced436aad5eaca97f2225fa",
      "parents": [
        "7dcda9d20e81867b1709595ba22a1c965540544f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Oct 06 13:17:32 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 06 13:21:08 2025 -0700"
      },
      "message": "[scudo] Only read urandom if getrandom syscall isn\u0027t available. (#161889)\n\nIf the getrandom system call is available, but the call returns an\nerror, it could mean that the system doesn\u0027t have enough randomness to\nrespond yet. Trying to read /dev/urandom will likely block and cause\ninitialization to be stalled. Therefore, return false in this case and\nuse the backup random data.\n\nGitOrigin-RevId: f64223647e1969253ddc1bd8725bfacfc0456215\n"
    },
    {
      "commit": "7dcda9d20e81867b1709595ba22a1c965540544f",
      "tree": "58b1e2527a7edaf664145ff81f044955a8288a5a",
      "parents": [
        "4380324b5d3e2c0b18446521a70481400ddc7bf1"
      ],
      "author": {
        "name": "Fabio D\u0027Urso",
        "email": "fdurso@google.com",
        "time": "Sat Sep 27 08:48:02 2025 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 26 23:52:33 2025 -0700"
      },
      "message": "[scudo] Use TestAllocator wrapper to ensure proper cleanup (#160800)\n\nInstead of directly instantiating scudo::Allocator, using the test\nTestAllocator wrapper class ensures that unmapTestOnly is called at the\nend of the test.\n\nThis fixes the issue of QuarantineIterateOverChunks failing on Fuchsia\nbecause of a clobbered TLS pointer left by QuarantineEnabled.\n\nGitOrigin-RevId: d0a260b1d124dcad62102011aa80df5f868d28f7\n"
    },
    {
      "commit": "4380324b5d3e2c0b18446521a70481400ddc7bf1",
      "tree": "1d3379c7b4ae35bbcef729f418549660e70728a0",
      "parents": [
        "81fb12efd93dfab6924e1cb22e929093fae85815"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Sep 25 12:29:35 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 25 12:31:07 2025 -0700"
      },
      "message": "[scudo] Release to OS if a large amount of memory is deallocated. (#160621)\n\nBefore this change, if large amounts of memory are deallocated within a\nrelease interval, the release is put off until the release interval\noccurs. Unfortunately, for larger class sizes, this could mean that a\nlot of this memory accumulates and is never released since no more\ndeallocations occur in that size class.\n\nTo fix this, if `RegionPushedBytesDelta` grows larger than a group size,\nimmediately do a release.\n\nThis work was originally done by ChiaHungDuan.\n\nGitOrigin-RevId: 885cb59315f974b261945686177cfa23833793bd\n"
    },
    {
      "commit": "81fb12efd93dfab6924e1cb22e929093fae85815",
      "tree": "b471d276c59352eddfd77ce883353848cc31da75",
      "parents": [
        "4f16bd8bb7b1a5d3fdb5d3a8253670725865abd7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Sep 23 10:43:51 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 23 10:45:41 2025 -0700"
      },
      "message": "[scudo] Skip special quarantine blocks in iterateOverChunks (#159892)\n\nIf a quarantine block is allocated, it will be passed through to a user\nwho calls iterateOverChunks. Make these special block allocations state\nQuarantined so they are not passed to iterateOverChunks.\n\nRemove the FIXME in the combined tests for quarantine since this fixes\nthose tests too.\n\nAlso add a specific new test that fails without this fix.\n\nGitOrigin-RevId: d0eef22171096069fe4f6103b303bc5313c76fe7\n"
    },
    {
      "commit": "4f16bd8bb7b1a5d3fdb5d3a8253670725865abd7",
      "tree": "3cf4333e5c51fc8b796a96aaf24fa3c7da145a26",
      "parents": [
        "25d3af2282b74b5e20090b290c1e04825e3eb957"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Sep 18 17:01:13 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 18 17:05:47 2025 -0700"
      },
      "message": "[scudo] Add missing tracing.h include to primary32 (#159668)\n\nGitOrigin-RevId: bda1cab20941ed842429f19ed0e22861017d935b\n"
    },
    {
      "commit": "25d3af2282b74b5e20090b290c1e04825e3eb957",
      "tree": "c310b076f4cbe4904c644e618398a888fa77e099",
      "parents": [
        "46a0224094a6d85e1b51c7fa06194a6debdfe0c4"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Sep 17 08:49:18 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 17 08:52:31 2025 -0700"
      },
      "message": "[scudo] Move the trace point in releaseToOSMaybe (#159204)\n\nMove the trace point until right before the mark free blocks call for\nthe primary. This avoids adding extra calculations on a fast path.\n\nGitOrigin-RevId: c919109aa96cae7b72eb9cc3f1559706e36a3c0b\n"
    },
    {
      "commit": "46a0224094a6d85e1b51c7fa06194a6debdfe0c4",
      "tree": "bdf0a73459413acbe703b1a6eadc80f7802be7eb",
      "parents": [
        "4d2b9c8a57ac34772dd53dad0d441455a8902b82"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Sep 11 10:23:29 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 11 10:26:49 2025 -0700"
      },
      "message": "[scudo] Add tracing framework (#156112)\n\nAdd a methodology to allow tracing. By default, this is disabled, but it\ncan be enabled for any OS that supports it.\n\nCurrently, only releaseToOSXXX functions have trace points added.\n\nGitOrigin-RevId: 7628abdb87ccb18703d53cea014456bf764faa2a\n"
    },
    {
      "commit": "4d2b9c8a57ac34772dd53dad0d441455a8902b82",
      "tree": "bbae9c58f64a31fcce7466f6759f2fb2e700b11a",
      "parents": [
        "a563127de87e3479e1c24afdeb1f139ea75584c3"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "mcgrathr@google.com",
        "time": "Mon Sep 08 11:29:52 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 08 11:36:17 2025 -0700"
      },
      "message": "[scudo] Use anonymous namespace for test helper code (#157207)\n\nTests can be at top-level or inside an anonymous namespace,\ndoesn\u0027t matter.  But putting their helper code inside anonymous\nnamespaces both makes the code compatible with compiling using\n-Wmissing-declarations and might let the compiler optimize the\ntest good a bit better.\n\nGitOrigin-RevId: 8ddd8045ac3e74ef3273e50973534b35c0620d52\n"
    },
    {
      "commit": "a563127de87e3479e1c24afdeb1f139ea75584c3",
      "tree": "999faa8b2be7731b3d059cfb792384ff1e51f4b2",
      "parents": [
        "936bda383527bf13d26849cdb7ce0939fea1337e"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "mcgrathr@google.com",
        "time": "Fri Sep 05 11:48:38 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 05 11:50:36 2025 -0700"
      },
      "message": "[scudo] Move getPageSize() decl to common.h header (#157146)\n\nThe getPageSize() function is defined in the platform-specific\nsource files but used in common.cpp.  Every function used across\nfiles should be declared in a header so the same declaration is\nin scope for the callers and the definition.\n\nGitOrigin-RevId: 5cf4959b2121aac82f86b10a2c9b9faa74fedda9\n"
    },
    {
      "commit": "936bda383527bf13d26849cdb7ce0939fea1337e",
      "tree": "9f39ca9a7e9c1ee4d76b2d59043f9de9902b70a0",
      "parents": [
        "5e48d78d71c78063749d6c75aa420000c86cb0de"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Jul 30 19:41:14 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 30 19:44:42 2025 -0700"
      },
      "message": "[scudo] Allow the quarantine code to be compiled out (#151064)\n\nAdd a new configuration option QuarantineDisabled that allows all of the\nquarantine code to be compiled out.\n\nAdd new tests that verify that the code is removed properly.\n\nOn Android, this saves ~4000 bytes for 32 bit and ~6000 bytes for 64\nbit.\n\nOn Android, I used some microbenchmarks that do malloc/free in a loop\nand for allocations in the primary, the performance is about the same\nfor both 32 bit and 64 bit. For secondary allocations, I saw ~8% speed\nup on 32 bit and ~3% on 64 bit speed up which feels like it could just\nbe code size improvements.\n\nGitOrigin-RevId: ef962752d9fee02fe1e626dc92206eb0457e2aa3\n"
    },
    {
      "commit": "5e48d78d71c78063749d6c75aa420000c86cb0de",
      "tree": "0c98c64b6dc10d13f55fc958418c40b21ec4983c",
      "parents": [
        "61d6928d64cef1cda2b0cf743c50a6667a2227a9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Jul 28 12:56:16 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 28 13:01:00 2025 -0700"
      },
      "message": "[scudo] Fix secondary caching for mte (#150156)\n\nThe current code always unmaps a secondary allocation when MTE is\nenabled. Fix this to match the comment, namely only unmap if MTE was\nenabled and is no longer enabled after acquiring the lock.\n\nIn addition, allow quaratine to work in the secondary even if MTE is not\nenabled.\n\nGitOrigin-RevId: 30532c13d2fb592af9cb651f6571beca4b48b705\n"
    },
    {
      "commit": "61d6928d64cef1cda2b0cf743c50a6667a2227a9",
      "tree": "244178d7840beba3f8f1a7198d7d93c01f3ed6aa",
      "parents": [
        "7328c5dd0a2c29fcdc37b68de9674bf6861309d4"
      ],
      "author": {
        "name": "Fabio D\u0027Urso",
        "email": "fdurso@google.com",
        "time": "Tue Jul 22 03:31:35 2025 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 21 18:35:29 2025 -0700"
      },
      "message": "[scudo] Make Ptr volatile so that the malloc and free calls are not optimized out (#149944)\n\nThis fixes the test failure seen in the discussion about\nhttps://github.com/llvm/llvm-project/pull/148066.\n\nGitOrigin-RevId: fcdcc4ea7ac960c79246b3bd428f14ea350e63e2\n"
    },
    {
      "commit": "7328c5dd0a2c29fcdc37b68de9674bf6861309d4",
      "tree": "92faba5b354173f49ef82f74cea18aa29a1b9c4a",
      "parents": [
        "f3b87bff9da36cb9c7593f54bb6db33d51fb00c5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Jul 16 19:25:57 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 16 19:30:30 2025 -0700"
      },
      "message": "[scudo] Make release to OS test more specific. (#147852)\n\nThe original version of ResidentMemorySize could be a little flaky.\nReplace the test with a version that verifies exactly how much of the\nmap is resident.\n\nGitOrigin-RevId: 34b3ea367c4299ebd7c37edc7c748c9627ee66cb\n"
    },
    {
      "commit": "f3b87bff9da36cb9c7593f54bb6db33d51fb00c5",
      "tree": "31627cc5a3958d4ee8cdba27a5af6a251abf88f7",
      "parents": [
        "8ee815453579cc9f0c7e35f4f89c7a2182066ee1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Mon Jul 14 11:15:10 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 14 11:16:19 2025 -0700"
      },
      "message": "[scudo] Fix c wrappers double free test. (#148066)\n\nThe previous test simply tried to double free the pointer in the\nEXPECT_DEATH macro. Unfortunately, the gtest infrastructure can allocate\na pointer that happens to be the previously freed pointer. Thus the free\ndoesn\u0027t fail since the spawned process does not attempt to free all of\nthe pointers allocated in the original test.\n\nNOTE: Scudo should be checked to make sure that the TSD is not always\nreturning pointers in the same order they are freed. Although this\nappears to be a problem with a program that only does a small number of\nallocations.\nGitOrigin-RevId: 309bb1ed6844a5936158a2a8406d1b77bda37b94\n"
    },
    {
      "commit": "8ee815453579cc9f0c7e35f4f89c7a2182066ee1",
      "tree": "ca9901a254a9eba4f975c4839b7dacc285b15f7d",
      "parents": [
        "8695ad12b793f9a832bef986ac77670a4612e64c"
      ],
      "author": {
        "name": "ChiaHungDuan",
        "email": "chiahungduan@google.com",
        "time": "Wed Jul 09 13:42:02 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 09 13:43:13 2025 -0700"
      },
      "message": "[scudo] Move out the definitions of member functions in primary allocators (#147601)\n\nThis greatly improves the readability so that we are able to tell the\ndesign by the concise class definition.\n\nGitOrigin-RevId: 4ea0ef2e944762c67395de080f1bc6fe06a0c66b\n"
    },
    {
      "commit": "8695ad12b793f9a832bef986ac77670a4612e64c",
      "tree": "46ca239296cd14f1cee02b72c3eae48bbc0b70c1",
      "parents": [
        "dbc816cc772a5cfe0acfd7789c1e054d14716f00"
      ],
      "author": {
        "name": "ChiaHungDuan",
        "email": "chiahungduan@google.com",
        "time": "Tue Jul 08 11:07:05 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 08 11:10:58 2025 -0700"
      },
      "message": "[scudo] Make block storage in TransferBatch trailing objects (#144204)\n\nThis allows us to change the number of blocks stored according to the\nsize of BatchClass.\n\nAlso change the name `TransferBatch` to `Batch` given that it\u0027s never\nthe unit of transferring blocks.\n\nGitOrigin-RevId: 8b65c9d1ed298a9f4be675d1da9d678fd61ff2b0\n"
    },
    {
      "commit": "dbc816cc772a5cfe0acfd7789c1e054d14716f00",
      "tree": "e91272e22d3f802464f7d46d951b5820919e8243",
      "parents": [
        "f347c350d53ea4004879308ef2f368f29629cad1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Wed Jun 18 09:12:53 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 18 09:15:47 2025 -0700"
      },
      "message": "[scudo] Make report pointers const. (#144624)\n\nMark as many of the reportXX functions that take pointers const. This\navoid the need to use const_cast when calling these functions on an\nalready const pointer.\n\nFix reportHeaderCorruption calls where an argument was passed into an\nappend call that didn\u0027t use them.\n\nGitOrigin-RevId: a2cee05449636c8e0d630b2ccdc71f2d422227a9\n"
    },
    {
      "commit": "f347c350d53ea4004879308ef2f368f29629cad1",
      "tree": "aac5c7b22265d30a2202722c45f78c035bbf5e89",
      "parents": [
        "2dd0bdf9c99c51d6ad2ecac1dbfbe8c32b82bb01"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Thu Apr 17 14:23:42 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 17 14:25:35 2025 -0700"
      },
      "message": "[scudo] Add primary option to enable/disable cache blocks. (#129794)\n\nWhen configured this way, no primary blocks will be cached except the\nbatch class. Nothing else changes, no change in the page releasing\nstrategy.\n\nGitOrigin-RevId: 1756fcb8b0192281db641d2038c03b96015e29d4\n"
    },
    {
      "commit": "2dd0bdf9c99c51d6ad2ecac1dbfbe8c32b82bb01",
      "tree": "b9d3e4fa54f16e885c5d96ef172e7188106b7355",
      "parents": [
        "a8735a296f65fad4ec6527350e6667a6824f6ead"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris1000@users.noreply.github.com",
        "time": "Tue Mar 25 16:32:16 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 25 16:35:35 2025 -0700"
      },
      "message": "[scudo] Use a tryLock in secondary release to OS (#132827)\n\nIn the caching part of the secondary path, when about to try to release\nmemory to the OS, we always wait while acquiring the lock. However, if\nmultiple threads are attempting this at the same time, all other threads\nwill likely do nothing when the release call is made. Change the\nalgorithm to skip the release if there is another release in process.\n\nAlso, pull the lock outside the releaseOlderThan function. This is so\nthat in the store path, we use the tryLock and skip if another thread is\nreleasing. But in the path where a forced release call is being made,\nthat call will wait for release to complete which guarantees that all\nentries are released when requested.\n\nGitOrigin-RevId: 134cb8877e0da3da5c9652c55196f7a1380fb207\n"
    }
  ],
  "next": "a8735a296f65fad4ec6527350e6667a6824f6ead"
}
