)]}'
{
  "commit": "11b4f01355703d34099d4da145c7d92e32d98636",
  "tree": "e895a3794edbfe60c481954ed4ad79fcc2b661c3",
  "parents": [
    "b13c1d9299d6426f48f074545f3e403e5a9b8a61"
  ],
  "author": {
    "name": "David Lamparter",
    "email": "equinox@opensourcerouting.org",
    "time": "Mon Dec 09 16:48:55 2013 +0100"
  },
  "committer": {
    "name": "David Lamparter",
    "email": "equinox@opensourcerouting.org",
    "time": "Tue Mar 18 08:45:29 2014 +0100"
  },
  "message": "ospf6d: clear lsa-\u003erefresh before clearing LSAs\n\nThis fixes a SEGV when we receive a higher-SeqNum copy of a LSA that we\noriginated ourselves, before a reboot of ospf6d.  We create a new\ncopy of the LSA to resync the SeqNum, but then half an hour later\nthe old refresh thread ends up trying to refresh the free()\u0027d old LSA.\n\nThe SEGV is triggered by this chain:\n  ospf6_lsdb_maxage_remover\n  -\u003e thread_execute(ospf6_lsa_refresh)\n     -\u003e old-\u003erefresh \u003d NULL\nWhich assumes that old-\u003erefresh is no longer scheduled to run, as it is\nbeing run right there.  But the thread_execute() doesn\u0027t know about\nold-\u003erefresh and therefore didn\u0027t remove it.\n\n(Found by ANVL OSPFV3-16.17)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dc9ecbfb04ef40436b9867c3993bfd599a384d07",
      "old_mode": 33188,
      "old_path": "ospf6d/ospf6_flood.c",
      "new_id": "49ed6e265e14514b16856899564ff1979f9c0824",
      "new_mode": 33188,
      "new_path": "ospf6d/ospf6_flood.c"
    },
    {
      "type": "modify",
      "old_id": "5138d1c1cfdeb137e0f4bc956522c12cbc3246c5",
      "old_mode": 33188,
      "old_path": "ospf6d/ospf6_lsdb.c",
      "new_id": "707afc67eb0fb6d4c19c3aecf4ed1e440504c448",
      "new_mode": 33188,
      "new_path": "ospf6d/ospf6_lsdb.c"
    }
  ]
}
