)]}'
{
  "commit": "44f7d6ecde9bf7427a05cbe73ed5d668b8a72b2a",
  "tree": "d3cc0f4bff1d117ac9b20430b627aaf7b7b19b28",
  "parents": [
    "45766b673f427bb791c9d5886cadedfac0447066"
  ],
  "author": {
    "name": "jfkthame",
    "email": "jfkthame@gmail.com",
    "time": "Fri Feb 17 03:03:24 2017 +0000"
  },
  "committer": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Thu Feb 16 19:03:24 2017 -0800"
  },
  "message": "Guard against underflow when adjusting length (#421)\n\n* Guard against underflow when adjusting length\r\n\r\nWith the fuzz-testcase in mozilla bug 1295299, we end up with a recursed lookup that removes 3 items, when `match_positions[idx]` is 0, which results in (unsigned) `end` wrapping to a huge value.\r\n\r\nMaking `end` a signed int is probably the simplest route to a fix.\r\n\r\nFixes https://bugzilla.mozilla.org/show_bug.cgi?id\u003d1295299.\r\n\r\n* Add testcase for #421.\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b7a0122a3b30f51877773c15103c6cce318ee00d",
      "old_mode": 33188,
      "old_path": "src/hb-ot-layout-gsubgpos-private.hh",
      "new_id": "0c4235268614b25c3073ee13199da23339cc1c21",
      "new_mode": 33188,
      "new_path": "src/hb-ot-layout-gsubgpos-private.hh"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5d72fdfe31f93c74989082bbd274f53c21cc9a39",
      "new_mode": 33188,
      "new_path": "test/shaping/fonts/sha1sum/558661aa659912f4d30ecd27bd09835171a8e2b0.ttf"
    },
    {
      "type": "modify",
      "old_id": "771ac2b458f9b7bd21cbdfc3ec476d5560ebd4b6",
      "old_mode": 33188,
      "old_path": "test/shaping/tests/fuzzed.tests",
      "new_id": "d9bace3249896281e737fcad562ae2c82cb5dcca",
      "new_mode": 33188,
      "new_path": "test/shaping/tests/fuzzed.tests"
    }
  ]
}
