)]}'
{
  "commit": "69a6691c31d742208b9886e4325980048069d272",
  "tree": "611bbd0fcd7a13dca9fbd9f16ad002e3f0fcf6c5",
  "parents": [
    "b6b8557e8e2974925aec7a136ba0e323eedc5f43"
  ],
  "author": {
    "name": "Yiftach Karkason",
    "email": "yiftach@island.io",
    "time": "Mon Sep 21 22:53:03 2026 +0300"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Fri Oct 09 13:29:27 2026 -0700"
  },
  "message": "windows/mkwinsyscall: read 32-bit results from the low half of the return register\n\nOn 64-bit Windows the upper 32 bits of the return register are\nundefined for 32-bit return types (BOOL, DWORD, LSTATUS, NTSTATUS,\nHRESULT). Hooked or otherwise non-conforming implementations can leave\ngarbage there, which the generated code then mistook for a failure or\nfor a different error code.\n\nRead error and bool results through uint32 so only the defined bits are\nused, including the default failure check of functions that only return\nerr. Other return values are left as declared.\n\nAdd a test that builds a DLL wrapping RegOpenKeyExW (DWORD retval),\nIsValidCodePage (BOOL retval) and GetHandleInformation (BOOL retval\nwith err) so their results come back with garbage in the upper half of\nthe register, and checks that the generated wrappers ignore it.\n\nFixes golang/go#81249\n\nChange-Id: I1e4cd3aee945cf32c79032745505ed25dd455857\nReviewed-on: https://go-review.googlesource.com/c/sys/+/836325\nReviewed-by: Alex Brainman \u003calex.brainman@gmail.com\u003e\nAuto-Submit: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Quim Muntal \u003cquimmuntal@gmail.com\u003e\nReviewed-by: Damien Neil \u003cdneil@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6411a7a7114d2d2e5cc9ee6d733d53eed859b00a",
      "old_mode": 33188,
      "old_path": "cpu/zcpu_windows.go",
      "new_id": "949b8f488ed6648d86072818e789329fa27d9cbf",
      "new_mode": 33188,
      "new_path": "cpu/zcpu_windows.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "19ea277b3a7a8f2f8aab897cf0d2d4b4bd332b04",
      "new_mode": 33188,
      "new_path": "windows/mkwinsyscall/hook_windows_test.go"
    },
    {
      "type": "modify",
      "old_id": "284ad91aab39940976af4172274db4e7370fc398",
      "old_mode": 33188,
      "old_path": "windows/mkwinsyscall/mkwinsyscall.go",
      "new_id": "eb0ac9b9d1341c15d19987f1c5de750e1adfad6e",
      "new_mode": 33188,
      "new_path": "windows/mkwinsyscall/mkwinsyscall.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3a781521520d404cc27a5a588e284bd8a1434676",
      "new_mode": 33188,
      "new_path": "windows/mkwinsyscall/zhook_windows_test.go"
    },
    {
      "type": "modify",
      "old_id": "bc1ce4360b6a9cd342f140871d32c0b140ab98b8",
      "old_mode": 33188,
      "old_path": "windows/registry/zsyscall_windows.go",
      "new_id": "59a6eb1fc7acd936a5a2b176fbb91bfeac9fe4b6",
      "new_mode": 33188,
      "new_path": "windows/registry/zsyscall_windows.go"
    },
    {
      "type": "modify",
      "old_id": "192d1930023265b507e254fc609171bb995a339d",
      "old_mode": 33188,
      "old_path": "windows/zsyscall_windows.go",
      "new_id": "347ab612f4e9998f0aa165ffa1d03b0c0dac0a15",
      "new_mode": 33188,
      "new_path": "windows/zsyscall_windows.go"
    }
  ]
}
