)]}'
{
  "commit": "be3764a69f1819f19d9e0f81461e7bd171d157c9",
  "tree": "b3302e98b7c3c6d68c9e8e83b8175bb2078f2bcc",
  "parents": [
    "a5b6f6f778a6858ce3b633119c566800beb278eb"
  ],
  "author": {
    "name": "Gilles Peskine",
    "email": "Gilles.Peskine@arm.com",
    "time": "Mon Mar 23 19:18:43 2026 +0100"
  },
  "committer": {
    "name": "Gilles Peskine",
    "email": "Gilles.Peskine@arm.com",
    "time": "Mon Mar 23 19:24:18 2026 +0100"
  },
  "message": "Work around Valgrind hooking into _exit()\n\nWhen running tests that use mbedtls_test_fork_run_child() under Valgrind,\nbad things happen. Specifically:\n\n* Valgrind reports leaks in the child. Those leaks do exist, but they\u0027re\n  deliberate since we avoid cleaning up in the child (because we want to\n  do as little as possible in the child, and because cleanups such as\n  destroying PSA persistent keys would have undesirable effects outside\n  the child process).\n* Valgrind\u0027s overridden `_exit()` doesn\u0027t just perform checks, but also for\n  some reason it causes the file description on the .datax file to seek\n  backwards, causing tests to run again in a loop.\n\nAvoid this by calling `execve()` (via `execlp()`) rather than `_exit()` if\nit looks like the test is run under Valgrind. This is safe as long as\nValgrind isn\u0027t run with `--trace-children\u003dyes`.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "67b4425386c54f16d50cca69ed0e109fc16e0bee",
      "old_mode": 33188,
      "old_path": "tests/src/fork_helpers.c",
      "new_id": "92a0a328c8730459d73817aeb5b84e684b0892fb",
      "new_mode": 33188,
      "new_path": "tests/src/fork_helpers.c"
    }
  ]
}
