)]}'
{
  "commit": "daaf7acf47a12d10459060dca5500b63273cd683",
  "tree": "2588c3b660987ba49b11cc62674594ab73b0a81b",
  "parents": [
    "9170b70c41064a0ba197dc7e2d6ecb940d2272bb"
  ],
  "author": {
    "name": "Bruno Larsen",
    "email": "blarsen@redhat.com",
    "time": "Tue Feb 22 11:44:44 2022 -0300"
  },
  "committer": {
    "name": "Bruno Larsen",
    "email": "blarsen@redhat.com",
    "time": "Mon Mar 21 09:08:55 2022 -0300"
  },
  "message": "[gdb/testsuite] test a function call by hand from pretty printer\n\nThe test case added here is testing the bug gdb/28856, where calling a\nfunction by hand from a pretty printer makes GDB crash. There are 6\nmechanisms to trigger this crash in the current test, using the commands\nbacktrace, up, down, finish, step and continue. Since the failure happens\nbecause of use-after-free (more details below) the tests will always\nhave a chance of passing through sheer luck, but anecdotally they seem\nto fail all of the time.\n\nThe reason GDB is crashing is a use-after-free problem. The above\nmentioned functions save a pointer to the current frame\u0027s information,\nthen calls the pretty printer, and uses the saved pointer for different\nreasons, depending on the function. The issue happens because\ncall_function_by_hand needs to reset the obstack to get the current\nframe, invalidating the saved pointer.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3be5675b09622eeaa0f7dbeb8f225157695a5936",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.python/pretty-print-call-by-hand.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a6d014cf12b260ccef819a6555f60413131d2b1",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f8f5df678f8fa5c74f0567ac5d77f1b6247e1a9d",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.python/pretty-print-call-by-hand.py"
    }
  ]
}
