)]}'
{
  "commit": "0fdfd1aa286054cbf42bbf93006404caa2b827b8",
  "tree": "6774c0b889b65a95e9f78ed5d5b1c8e7380dc067",
  "parents": [
    "22246df7f22fc20a6d0657123e549686550d2d60"
  ],
  "author": {
    "name": "FuzzTest Team",
    "email": "fuzztest@google.com",
    "time": "Mon Nov 21 12:48:07 2022 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Nov 21 12:48:34 2022 -0800"
  },
  "message": "FuzzTest: make use of SA_ONSTACK flag for signal handlers\n\nFor programs with Go threads present, signal handlers must be initialized with\nthe `SA_ONSTACK` flag due to Go threads inherently having small stacks [0]. This\nflag ensures that a dedicated stack is used during the execution of a signal\nhandler. Failing to initialize signal handlers with `SA_ONSTACK` results in the\nabnormal termination of the program in the instance that a signal is received.\n\nFTR, we\u0027re making use of FuzzTest to test both our C++ and Go code. We use `cgo`\nas a mechanism for exposing Go functions to C++ test code and hence Go threads\nbeing present in the C++ test binary.\n\nApart from an increased memory footprint due to the kernel having to install a\ndedicated stack region for the signal handler to run in, I don\u0027t immediately\nforesee there being any other problems using the SA_ONSTACK by default.\n\n[0] https://pkg.go.dev/os/signal#hdr-Go_programs_that_use_cgo_or_SWIG\n\nPiperOrigin-RevId: 490049359\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c9d86275566d4a5003e780455644a4c6f72541fe",
      "old_mode": 33188,
      "old_path": "fuzztest/internal/runtime.cc",
      "new_id": "4ba631967e560a3d27eeb620f0109408f2b9fc30",
      "new_mode": 33188,
      "new_path": "fuzztest/internal/runtime.cc"
    }
  ]
}
