)]}'
{
  "commit": "610ade2ed7253593198287aa53a9b05852ef0ede",
  "tree": "d4fb903135a641ce79673eebfae7f4d291f8dbee",
  "parents": [
    "af93db9344919085551fac38d6d6a4f774a7220a"
  ],
  "author": {
    "name": "bernhardu",
    "email": "bernhardu@mailbox.org",
    "time": "Fri Mar 21 14:45:20 2025 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Mar 21 14:45:20 2025 +0100"
  },
  "message": "[win/asan] GetInstructionSize: Detect `66 90` two-byte NOP at 32-bit too. (#132267)\n\nObserved in Wine when trying to intercept `ExitThread`, which forwards\nto `ntdll.RtlExitUserThread`.\n\n`gdb` interprets it as `xchg %ax,%ax`.\n`llvm-mc` outputs simply `nop`.\n\n```\n\u003d\u003dAsan-i386-calls-Dynamic-Test.exe\u003d\u003d964\u003d\u003dinterception_win: unhandled instruction at 0x7be27cf0: 66 90 55 89 e5 56 50 8b\n```\n\n```\nWine-gdb\u003e bt\n#0  0x789a1766 in __interception::GetInstructionSize (address\u003d\u003coptimized out\u003e, rel_offset\u003d\u003coptimized out\u003e) at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/interception/interception_win.cpp:983\n#1  0x789ab480 in __sanitizer::SharedPrintfCode(bool, char const*, char*) () at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:311\n#2  0x789a18e7 in __interception::OverrideFunctionWithHotPatch (old_func\u003d2078440688, new_func\u003d2023702608, orig_old_func\u003dwarning: (Internal error: pc 0x792f1a2c in read in CU, but not in symtab.)warning: (Error: pc 0x792f1a2c in address map, but not in symtab.)0x792f1a2c) at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/interception/interception_win.cpp:1118\n#3  0x789a1f34 in __interception::OverrideFunction (old_func\u003d2078440688, new_func\u003d2023702608, orig_old_func\u003dwarning: (Internal error: pc 0x792f1a2c in read in CU, but not in symtab.)warning: (Error: pc 0x792f1a2c in address map, but not in symtab.)0x792f1a2c) at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/interception/interception_win.cpp:1224\n#4  0x789a24ce in __interception::OverrideFunction (func_name\u003d0x78a0bc43 \u003cvtable for __asan::AsanThreadContext+1163\u003e \"ExitThread\", new_func\u003d2023702608, orig_old_func\u003dwarning: (Internal error: pc 0x792f1a2c in read in CU, but not in symtab.)warning: (Error: pc 0x792f1a2c in address map, but not in symtab.)0x792f1a2c)    at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/interception/interception_win.cpp:1369\n#5  0x789f40ef in __asan::InitializePlatformInterceptors () at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/asan/asan_win.cpp:190\n#6  0x789e0c3c in __asan::InitializeAsanInterceptors () at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:802\n#7  0x789ee6b5 in __asan::AsanInitInternal () at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:442\n#8  0x789eefb0 in __asan::AsanInitFromRtl () at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:522\n#9  __asan::AsanInitializer::AsanInitializer (this\u003d\u003coptimized out\u003e) at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:542\n#10 __cxx_global_var_init () at C:/llvm-mingw/llvm-mingw/llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:546\n...\nWine-gdb\u003e disassemble /r 2078440688,2078440688+20\nDump of assembler code from 0x7be27cf0 to 0x7be27d04:\n   0x7be27cf0 \u003c_RtlExitUserThread@4+0\u003e: 66 90                   xchg   %ax,%ax\n...\n```\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "002b37468a200c4f2a08321a29775cbb9d96cc94",
      "old_mode": 33188,
      "old_path": "compiler-rt/lib/interception/interception_win.cpp",
      "new_id": "b2974cf1934fb54f1230e02c2ee615ae8d7a60ee",
      "new_mode": 33188,
      "new_path": "compiler-rt/lib/interception/interception_win.cpp"
    },
    {
      "type": "modify",
      "old_id": "2a7549d230ae2897907ad77d11609eba131c0325",
      "old_mode": 33188,
      "old_path": "compiler-rt/lib/interception/tests/interception_win_test.cpp",
      "new_id": "893f346d73b8a2ffd2a27d1fa2fa8041253795a0",
      "new_mode": 33188,
      "new_path": "compiler-rt/lib/interception/tests/interception_win_test.cpp"
    }
  ]
}
