)]}'
{
  "commit": "6e4ab12f1504caa95edc7702a82f118d0de15a0a",
  "tree": "50b6784229f92d404e5d6509848c135395743f2f",
  "parents": [
    "16d2e2410d6e8cf53fac05b956f3e7ee53bc7234"
  ],
  "author": {
    "name": "Paul Jakma",
    "email": "paul.jakma@sun.com",
    "time": "Tue Apr 10 19:36:48 2007 +0000"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul.jakma@sun.com",
    "time": "Tue Apr 10 19:36:48 2007 +0000"
  },
  "message": "[bgpd] Bug #354: Take care to keep reads of MP_(UN)REACH_NLRI in bounds\n\n2007-04-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_attr.c: (general) Bug #354: parsing of MP_REACH_NLRI and\n\t  MP_UNREACH_NLRI does not take sufficient care to ensure reads\n\t  from stream buffer stay in-bounds. Hence bgpd may attempt to read\n\t  beyond end of stream, if given a crafted packet. As it uses the\n\t  stream access methods to do so, this will typically result in\n\t  assert() being hit in stream.c. Where code is compiled without\n\t  assert() enabled, result is unknown.\n\t  (struct message attr_str) should be static.\n\t  (bgp_mp_reach_parse) Carefully check length remaining in stream\n\t  against amount desired to read from stream, prior to each read,\n\t  particularly where lengths are conditional on data obtained from\n\t  stream - using STREAM_READABLE.\n\t  Remove code to parse SNPA-number, it\u0027s a defunct field and changed\n\t  to a fixed size in latest BGP MP update RFC - log warning if\n\t  SNPA-number is not 0.\n\t  (bgp_mp_unreach_parse) Check withdraw_length carefully against\n\t  STREAM_READABLE.\n\t  (bgp_attr_parse) If attribute-parser function returns error, log\n\t  warning.\n\t  Log attribute type on mismatch.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "653ce86e24c7c6e230bce81b14cfddee0551ae2f",
      "old_mode": 33188,
      "old_path": "bgpd/ChangeLog",
      "new_id": "4d6f1ef9d1c69217b5a3f3acfb51280ec51d60cc",
      "new_mode": 33188,
      "new_path": "bgpd/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "4c72d80ab7579851821bc287b86b71be04f936e5",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_attr.c",
      "new_id": "fc25d213079eacaa90f42f55295f1d1d73d00d82",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_attr.c"
    }
  ]
}
