)]}'
{
  "commit": "73af097db58528a3b8b9b69af035786eb3724ae3",
  "tree": "9c5fc2963abe1478f4e8a695bf48a27dea38c8e3",
  "parents": [
    "a400023b12be6761be6ce6b14c8da0d80e60ecee"
  ],
  "author": {
    "name": "enh-google",
    "email": "53129816+enh-google@users.noreply.github.com",
    "time": "Fri Feb 28 03:18:29 2020 -0800"
  },
  "committer": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Fri Feb 28 18:10:28 2020 -0800"
  },
  "message": "Fix hwasan global overflow. (#76)\n\n* Fix hwasan global overflow.\n\nCrash found with https://source.android.com/devices/tech/debug/hwasan\nbut also detectable by regular ASan. Here\u0027s an ASan crash:\n\n\u003d\u003d215690\u003d\u003dERROR: AddressSanitizer: global-buffer-overflow on address\n  0x55d90f8da140 at pc 0x55d90f8b7503 bp 0x7ffd3dae6100 sp 0x7ffd3dae60f8\n  READ of size 4 at 0x55d90f8da140 thread T0\n    #0 0x55d90f8b7502 in word /tmp/awk/lex.c:496\n    #1 0x55d90f8b939f in yylex /tmp/awk/lex.c:191\n    #2 0x55d90f894ab9 in yyparse /tmp/awk/awkgram.tab.c:2366\n    #3 0x55d90f89edc2 in main /tmp/awk/main.c:216\n    #4 0x7ff263a78bba in __libc_start_main ../csu/libc-start.c:308\n    #5 0x55d90f8945a9 in _start (/tmp/awk/a.out+0x115a9)\n\n0x55d90f8da141 is located 0 bytes to the right of global variable\n\u0027infunc\u0027 defined in \u0027awkgram.y:35:6\u0027 (0x55d90f8da140) of size 1\n\nSUMMARY: AddressSanitizer: global-buffer-overflow /tmp/awk/lex.c:496 in word\nShadow bytes around the buggy address:\n  0x0abba1f133d0: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9\n  0x0abba1f133e0: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9\n  0x0abba1f133f0: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9\n  0x0abba1f13400: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00\n  0x0abba1f13410: 00 f9 f9 f9 f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9\n\u003d\u003e0x0abba1f13420: 04 f9 f9 f9 f9 f9 f9 f9[01]f9 f9 f9 f9 f9 f9 f9\n  0x0abba1f13430: 00 f9 f9 f9 f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9\n  0x0abba1f13440: 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9\n  0x0abba1f13450: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9\n  0x0abba1f13460: f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9\n  0x0abba1f13470: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 00 f9 f9 f9\n\nAnd here\u0027s the stack trace from hwasan:\n\n  Stack Trace:\n  RELADDR           FUNCTION         FILE:LINE\n  00000000000168d4  word             external/one-true-awk/lex.c:496:18\n  000000000002d1ec  yyparse          y.tab.c:2460:16\n  000000000001c82c  main             external/one-true-awk/main.c:179:2\n  00000000000b41a0  __libc_init      bionic/libc/bionic/libc_init_dynamic.cpp:151:8\n\nAs it says, we\u0027re doing a 4-byte read from a 1-byte global.\n\n`infunc` is declared as an int but defined as a bool.\n\nSigned-off-by: Evgenii Stepanov \u003ceugenis@google.com\u003e\n\n* Add ASan cflags to makefile.\n\nThey\u0027re not used by default, but this way they\u0027re easily to hand next\ntime they\u0027re wanted.\n\nBug: http://b/150168534\nTest: treehugger\n(cherry picked from commit 7b245a02668dcb9f9677b36f5745cfd07cc216bd)\nChange-Id: I1302532f27970b3e73df6536238c2777798bd102\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1c232125a2bf8611cf349ea40f8bcfbcf4d1d0ea",
      "old_mode": 33188,
      "old_path": "lex.c",
      "new_id": "81d1cc283202bd8c62091201966a199048e38fca",
      "new_mode": 33188,
      "new_path": "lex.c"
    },
    {
      "type": "modify",
      "old_id": "735436cae393b794c848151cfc951dc0f0952141",
      "old_mode": 33188,
      "old_path": "makefile",
      "new_id": "95aee3e065dfe255bfd55026bdfa8e7f9947fadb",
      "new_mode": 33188,
      "new_path": "makefile"
    }
  ]
}
