)]}'
{
  "commit": "4d6be03b95c3db21db1bb8fee01128c1b13f70e7",
  "tree": "0f7900c095a79b828c04f25577896f8163518d13",
  "parents": [
    "f98c2f7e53062a59f67914337c0b45c82393e11f"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Thu Feb 26 20:42:27 2015 -0500"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Feb 27 13:41:29 2015 -0800"
  },
  "message": "diffcore-rename: avoid processing duplicate destinations\n\nThe rename code cannot handle an input where we have\nduplicate destinations (i.e., more than one diff_filepair in\nthe queue with the same string in its pair-\u003etwo-\u003epath). We\nend up allocating only one slot in the rename_dst mapping.\nIf we fill in the diff_filepair for that slot, when we\nre-queue the results, we may queue that filepair multiple\ntimes. When the diff is finally flushed, the filepair is\nprocessed and free()d multiple times, leading to heap\ncorruption.\n\nThis situation should only happen when a tree diff sees\nduplicates in one of the trees (see the added test for a\ndetailed example). Rather than handle it, the sanest thing\nis just to turn off rename detection altogether for the\ndiff.\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": "0afe903de9d300f36f12242ef89ea0d7c46aecbf",
      "old_mode": 33188,
      "old_path": "diffcore-rename.c",
      "new_id": "361eed9fbcaa282e4e0ac14f2ac28a0b5d8b2826",
      "new_mode": 33188,
      "new_path": "diffcore-rename.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a23242cb6aab7903aac9b767b0c4913208c044b",
      "new_mode": 33261,
      "new_path": "t/t4058-diff-duplicates.sh"
    }
  ]
}
