)]}'
{
  "commit": "fd35b948dbb35674cd9ded431f94b59aeced40cc",
  "tree": "c236a99b492b19943916e0c117b0a2461333b422",
  "parents": [
    "3fa3f957e70f594cc2c1cac03644ddf48554c178"
  ],
  "author": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Thu Jul 16 19:27:32 2009 +0100"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Fri Jul 17 11:19:46 2009 +0100"
  },
  "message": "[bgpd] Bug #533: Fix crash with copy/pasted commands, inc \u0027no bgp ...\u0027\n\n* bgpd.c: Removal of (struct bgp *) from the master list was being left to\n  bgp_free time.  This meant there was a window of time between bgp_delete\n  and refcounts hitting 0 (e.g.  routes to be processed) where bgp_lookup\u0027s\n  could return a deleted (struct bgp *).\n\n  (bgp_delete) This is the logical place where a (struct bgp *) should lose\n  its visibility, so move the deletion from the bgp-master list to here,\n  from bgp_free.\n\n  Many thanks to Fritz Reichmann for his thorough debugging of the problem\n  and testing of fixes and Chris Caputo for his further analysis.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1fefbd3f5d1b2dd607b4ffd624ee399d16be84d2",
      "old_mode": 33188,
      "old_path": "bgpd/bgpd.c",
      "new_id": "86bf60ec1aa1b726b6ff830f8c1276adddb8243d",
      "new_mode": 33188,
      "new_path": "bgpd/bgpd.c"
    }
  ]
}
