)]}'
{
  "commit": "b863457bc697d9fd07fb62a6ec276840d7e7a747",
  "tree": "b3c4a5332efaba4a764c8809d46f85d7c35c093f",
  "parents": [
    "5e9611aacc0bdd2054aa36800055014ebcd8e805"
  ],
  "author": {
    "name": "Andrew M. James",
    "email": "andrew.m.james2@gmail.com",
    "time": "Fri Aug 28 09:21:28 2026 -0500"
  },
  "committer": {
    "name": "Andrew M. James",
    "email": "andrew.m.james2@gmail.com",
    "time": "Fri Aug 28 12:18:22 2026 -0500"
  },
  "message": "fix: Guard against using a uninitialized value after `__new__` allocating python object\n\nfixes: #6153\n\nObjects initialized with `cls.__new__(cls)` (`cls` is a pybind11 bound\ntype). Will not have the C++ object allocated. When hitting `load_value`\nstorage is allocated but not initialized, calling a virtual method will\nload a garbage vptr and segfault. This is similar to #2152, but the\nguard in metaclass `__call__` is not triggered when using `__new__`.\n\nProtect against giving a pointer to garbage in all cases except the\n`__init__` + `__setstate__` path.\n\nAuthored with claude\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2954411d7bf7269f55e47035fe44b5188871facc",
      "old_mode": 33188,
      "old_path": "docs/advanced/classes.rst",
      "new_id": "c4c32f7c382a50a81e1c29e40a862aba1a2a49ae",
      "new_mode": 33188,
      "new_path": "docs/advanced/classes.rst"
    },
    {
      "type": "modify",
      "old_id": "c8fff5c144b46ce689fbe88849fff45438812b84",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/common.h",
      "new_id": "6f4323513ce44d968704e09661f088a251e7fa86",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/common.h"
    },
    {
      "type": "modify",
      "old_id": "161b9884fac3b916aa36c45eacb93e862fc021fd",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/type_caster_base.h",
      "new_id": "3cdd3a9d55cf1f9346a0f3123e272ca969fa15d7",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/type_caster_base.h"
    },
    {
      "type": "modify",
      "old_id": "f57514ae28eb579863d797957e84a2c38e7f5091",
      "old_mode": 33188,
      "old_path": "include/pybind11/pybind11.h",
      "new_id": "dc50d6d577d444fe8934a7cde46d6dfd9151bbb4",
      "new_mode": 33188,
      "new_path": "include/pybind11/pybind11.h"
    },
    {
      "type": "modify",
      "old_id": "e520f29ec5fc36a9e8acf8105aa2a4a3b190ee9d",
      "old_mode": 33188,
      "old_path": "tests/test_class.cpp",
      "new_id": "1bdc41ce799be2ff27b284eff6d74ec1c1507986",
      "new_mode": 33188,
      "new_path": "tests/test_class.cpp"
    },
    {
      "type": "modify",
      "old_id": "201c7e339e36d0587ac24bc6e1cf07d4afe6315d",
      "old_mode": 33188,
      "old_path": "tests/test_class.py",
      "new_id": "ad84715677bff74d427da853ce71044b7a7c3c99",
      "new_mode": 33188,
      "new_path": "tests/test_class.py"
    }
  ]
}
