)]}'
{
  "commit": "4f33a6345f2bd6e47253d1dbefd01874d895ab2e",
  "tree": "4d0d23fbf380aabd8f2af4e835ba174f41b3b6fb",
  "parents": [
    "f0d2f84919885d4dfb940e79a8e340bd2ad1887d"
  ],
  "author": {
    "name": "Ævar Arnfjörð Bjarmason",
    "email": "avarab@gmail.com",
    "time": "Wed Mar 09 16:01:38 2022 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Mar 09 10:25:27 2022 -0800"
  },
  "message": "list-objects: handle NULL function pointers\n\nIf a caller to traverse_commit_list() specifies the options for the\n--objects flag but does not specify a show_object function pointer, the\nresult is a segfault. This is currently visible by running \u0027git bundle\ncreate --objects HEAD\u0027.\n\nWe could fix this problem by supplying a no-op callback in\nbuiltin/bundle.c, but that only solves the problem for one builtin,\nleaving this segfault open for other callers.\n\nReplace all callers of the show_commit and show_object function pointers\nin list-objects.c to call helper functions show_commit() and\nshow_object() which check that the given context has non-NULL functions\nbefore passing the necessary data. One extra benefit is that it reduces\nduplication due to passing ctx-\u003eshow_data to every caller.\n\nTest that this segfault no longer occurs for \u0027git bundle\u0027.\n\nCo-authored-by: Derrick Stolee \u003cderrickstolee@github.com\u003e\nSigned-off-by: Ævar Arnfjörð Bjarmason \u003cavarab@gmail.com\u003e\nSigned-off-by: Derrick Stolee \u003cderrickstolee@github.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a0bb687b0f4ea30d44883dcb9d4de5bf1e5963ea",
      "old_mode": 33188,
      "old_path": "bundle.c",
      "new_id": "7ba60a573d73c92a02ab609bc67203d6032b6658",
      "new_mode": 33188,
      "new_path": "bundle.c"
    },
    {
      "type": "modify",
      "old_id": "117f734398ca5f385ae586e31131ddebb9523a3b",
      "old_mode": 33188,
      "old_path": "list-objects.c",
      "new_id": "250d9de41cb56072e95420530b203ce417191a2b",
      "new_mode": 33188,
      "new_path": "list-objects.c"
    },
    {
      "type": "modify",
      "old_id": "b13e8a52a93a4e96cde54c5076c19960a4d41a2c",
      "old_mode": 33261,
      "old_path": "t/t6020-bundle-misc.sh",
      "new_id": "df5ff561fa5c1b837d2db0222af7631677c17169",
      "new_mode": 33261,
      "new_path": "t/t6020-bundle-misc.sh"
    }
  ]
}
