)]}'
{
  "commit": "d1908500fef457eeea949ad97abca4663284a9a0",
  "tree": "b7b4b84e7c6ed67b7e0d98f63203e14368188272",
  "parents": [
    "bc9f8de7ea06a0307209031b8e59e49f7168350f"
  ],
  "author": {
    "name": "Charles Celerier",
    "email": "chcl@google.com",
    "time": "Thu Feb 06 11:31:01 2025 -0500"
  },
  "committer": {
    "name": "Charles Celerier",
    "email": "chcl@google.com",
    "time": "Fri Feb 07 16:38:05 2025 -0500"
  },
  "message": "Poll the fifo once before reading to detect when a process never loads libc\n\nThe fifo should be opened for writing from the traced process itself\nafter the LD_PRELOAD injection. This however will not happen if the\nprocess does not dynamically link libc. And this happens to be the case\nin most Go programs.\n\nThis change adds two tests to ensure fsatrace exits when run on a\nprocess that does not load libc and does not hang if the write end of\nthe fifo exits before the read end consumes any bytes.\n\nChange-Id: If1a717614f42761c706724d1b6e560db055a5539\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7247ed763f8696dc6e0b77dcbef8e3dd5d17ee10",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "65564873f3883fd0e575ed556496c0ffac19edee",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "modify",
      "old_id": "3d36842d9a6c8c4546c96f3718bf3c209e0a0829",
      "old_mode": 33188,
      "old_path": "src/fsatrace.c",
      "new_id": "46a74a75df6f43a3edafa28a3bf8a32eeb729eff",
      "new_mode": 33188,
      "new_path": "src/fsatrace.c"
    },
    {
      "type": "modify",
      "old_id": "8c60a429e26aa3d23d8ad2a014a9cfaf39c89b1f",
      "old_mode": 33188,
      "old_path": "src/proc.h",
      "new_id": "e0967f869121bbeffab0fa1cd2307cef1d63f20c",
      "new_mode": 33188,
      "new_path": "src/proc.h"
    },
    {
      "type": "modify",
      "old_id": "e706d9b9c556d6690f8547db131e44418f9e63ca",
      "old_mode": 33188,
      "old_path": "src/unix/proc.c",
      "new_id": "5b95690fecbdbc5f8e9375ea58aba9e29330899a",
      "new_mode": 33188,
      "new_path": "src/unix/proc.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "32817fbdbdaa557a86bce40b04077f1166459a88",
      "new_mode": 33188,
      "new_path": "test/nolibc.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "237c8ce181774d991a9dbdd8cacf1a5fb9f199f1",
      "new_mode": 33188,
      "new_path": "test/noop.c"
    },
    {
      "type": "modify",
      "old_id": "239e30901167e2d6fd1e9cf1c2bb09e02a58b56a",
      "old_mode": 33188,
      "old_path": "unix.mk",
      "new_id": "163b6f2c493c4e6b4489d498c016d0a9fa156c35",
      "new_mode": 33188,
      "new_path": "unix.mk"
    }
  ]
}
