)]}'
{
  "commit": "ab3aebc15c13d083013591777688cecbcb703fb2",
  "tree": "e3dff778e8b98dcc96649398713aac809bf04b0d",
  "parents": [
    "982ac87316a1cf5126888157bdcbfa32268ebe47"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Thu Mar 28 17:48:21 2013 -0400"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Mar 28 21:48:18 2013 -0700"
  },
  "message": "dir.c::match_pathname(): pay attention to the length of string parameters\n\nThis function takes two counted strings: a \u003cpattern, patternlen\u003e pair\nand a \u003cpathname, pathlen\u003e pair. But we end up feeding the result to\nfnmatch, which expects NUL-terminated strings.\n\nWe can fix this by calling the fnmatch_icase_mem function, which\nhandles re-allocating into a NUL-terminated string if necessary.\n\nWhile we\u0027re at it, we can avoid even calling fnmatch in some cases. In\naddition to patternlen, we get \"prefix\", the size of the pattern that\ncontains no wildcard characters. We do a straight match of the prefix\npart first, and then use fnmatch to cover the rest. But if there are\nno wildcards in the pattern at all, we do not even need to call\nfnmatch; we would simply be comparing two empty strings.\n\nSigned-off-by: Jeff King \u003cpeff@peff.net\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1757a3f4e0e141a3f9c763a194a2ed53010f0159",
      "old_mode": 33188,
      "old_path": "dir.c",
      "new_id": "8fea94e1853eecd18dc6d5eb36dd090bdcb3e246",
      "new_mode": 33188,
      "new_path": "dir.c"
    }
  ]
}
