)]}'
{
  "commit": "cdfd9840b35fca673dd1b27ef69a13b9f5be0d04",
  "tree": "14018f1b909d560e61579988be6fc2fa35eae1cc",
  "parents": [
    "782b836d3ae6ebda757c7b3800818e737c623614"
  ],
  "author": {
    "name": "Tobias Klauser",
    "email": "tklauser@distanz.ch",
    "time": "Wed Sep 30 11:23:03 2026 +0200"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Mon Oct 05 12:01:10 2026 -0700"
  },
  "message": "unix: pass fcntl data as unsafe.Pointer in FcntlF{lock,store} on darwin\n\nFcntlF{lock,store} on Darwin convert their data pointer argument to\nuintptr before passing it to the fcntl wrapper. Per the unsafe.Pointer\nrules, the conversion is only safe in the call expression itself.\nOtherwise, GC could free or move the underlying struct while the syscall\nwas still using it.\n\nFix this by adding an unexported fcntlPtr func that takes its arg\nargument as unsafe.Pointer and switch FcntlF{lock,store} to call it\ninstead.\n\nInspired by CL 836665\n\nChange-Id: I5b662f531a48a02cd7e872c94e3f958d33d6ea7b\nReviewed-on: https://go-review.googlesource.com/c/sys/+/841845\nAuto-Submit: Tobias Klauser \u003ctobias.klauser@gmail.com\u003e\nReviewed-by: Ian Lance Taylor \u003ciant@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a9911c7c1d8ec5634103425cf3cf136aab8044a1",
      "old_mode": 33188,
      "old_path": "unix/fcntl_darwin.go",
      "new_id": "78c28a3dc0c6e8383356f48938dadb6b22c63a89",
      "new_mode": 33188,
      "new_path": "unix/fcntl_darwin.go"
    },
    {
      "type": "modify",
      "old_id": "38590ca81dd1ae017b43e2e9c79cfa9c08afb9e7",
      "old_mode": 33188,
      "old_path": "unix/syscall_darwin.go",
      "new_id": "cb9d0a181c18fa65475cdeaa957d5f50ce2b1ab8",
      "new_mode": 33188,
      "new_path": "unix/syscall_darwin.go"
    },
    {
      "type": "modify",
      "old_id": "813c05b6647bbc274760ab15f1a697577c72fc3f",
      "old_mode": 33188,
      "old_path": "unix/zsyscall_darwin_amd64.go",
      "new_id": "7db9bf5f29af32454b4d3db295ce6fc97d41588c",
      "new_mode": 33188,
      "new_path": "unix/zsyscall_darwin_amd64.go"
    },
    {
      "type": "modify",
      "old_id": "e6f58f3c6f4fb860f212d64b8a03cc0ef4817b1e",
      "old_mode": 33188,
      "old_path": "unix/zsyscall_darwin_arm64.go",
      "new_id": "2a658059df924d8edb8f9a32633be394a3dfe827",
      "new_mode": 33188,
      "new_path": "unix/zsyscall_darwin_arm64.go"
    }
  ]
}
