)]}'
{
  "commit": "3117b5c47df044f8b2197fff60641075394fdce5",
  "tree": "0a25f9376ab96e21d9e161f9c9e156fbd5641d53",
  "parents": [
    "cb9e0ceec988a059dd2269ebc54722c01afb7cca"
  ],
  "author": {
    "name": "Steve Hill",
    "email": "quagga@cheesy.sackheads.org",
    "time": "Tue Jul 28 17:50:00 2009 +0100"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Tue Jul 28 17:50:00 2009 +0100"
  },
  "message": "bgpd: fd leak in bgpd\n\n* bgp_fsm.c: I have found an fd leak in bgpd that is caused by the \u0027new\u0027\n  Clearing state.  I\u0027ve been seeing it from hold timer failures, but it can\n  also be triggered by other things.\n\n  When Hold_Timer_expired fires in Established state, a notify is sent and\n  BGP_Stop event queued.  The fsm then transitions into Clearing state.\n  That is the problem; When the BGP_Stop event is serviced, the state table\n  says to ignore it while in Clearing.  Thus bgp_stop is not called and the\n  fd leaks.  Previously the peer would be in Idle state, which correctly\n  handles the BGP_Stop event.\n\n  Fix by making bgp_stop safe to call from Clearing state, without losing\n  ClearingCompleted events, and then ensuring it is called prior to\n  transition from Clearing-\u003eIdle.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf4b66b06b79460f633de01899cc9697cd473dab",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_fsm.c",
      "new_id": "45695895ed866b5857e3938ce9fc71f92cc3b804",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_fsm.c"
    }
  ]
}
