)]}'
{
  "commit": "055086f70febc30fdfd94bb4406e9075d6934cd8",
  "tree": "2f511a8b1aca7b3e67e895321bbfef7d02f074b1",
  "parents": [
    "b166ea2dda9f04a8b75e0bf5adb7064580695f22"
  ],
  "author": {
    "name": "Paul Jakma",
    "email": "paul@opensourcerouting.org",
    "time": "Tue Sep 23 15:23:01 2014 +0100"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Fri Oct 17 14:09:02 2014 +0100"
  },
  "message": "bgpd: well-known attr check only run for v4/uni, which could cause a crash.\n\n* ANVL testing by Martin Winter threw up a crash in bgpd in aspath_dup\n  called from bgp_packet_attribute, if attr-\u003easpath was NULL, on an IPv6\n  UPDATE.\n\n  This root cause is that the checks for well-known, mandatory attributes\n  were being applied only if an UPDATE contained the IPv4 NLRI and the\n  peer was configured for v4/unicast (i.e. not deconfigured). This is\n  something inherited from GNU Zebra, and never noticed before.\n\n* bgp_attr.c: (bgp_attr_parse) Move the well-known mandatory attribute\n  check to here, so that it can be run immediately after all attributes\n  are parsed, and before any further processing of attributes that might\n  assume the existence of WK/M attributes (e.g. AS4-Path).\n  (bgp_attr_munge_as4_attrs) Missing AS_PATH shouldn\u0027t happen here anymore,\n  but retain a check anyway for robustness - it\u0027s definitely a hard error\n  though.\n* bgp_attr.h: (bgp_attr_check) No longer needs to be exported, make static.\n* bgp_packet.c: (bgp_update_receive) Responsibility for well-known check\n  now in bgp_attr_parse.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b62a4f82693f3a8c33ceb46a0f4f9f9431e0a0fc",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_attr.c",
      "new_id": "69ca786dbe8d9ec562783878caf07136d5fdadf5",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_attr.c"
    },
    {
      "type": "modify",
      "old_id": "cb401e71181765d2aa3cedb95e51cf53305b2048",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_attr.h",
      "new_id": "b59fa8e4d38ea4c66ca588fcbbaa8dcba5007885",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_attr.h"
    },
    {
      "type": "modify",
      "old_id": "0fab1b0892e732a0d99f39a97ec7565422915627",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_packet.c",
      "new_id": "35a22c1e335d0d956ca44db4ec26fa5da01e585f",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_packet.c"
    }
  ]
}
