Fix: Prevent dangling reference crash by correcting C++ return value policy. #32508
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes a critical memory safety issue where a C++ function was returning a const & reference to Python without proper lifetime management.
The Problem: The returned reference's lifetime was tied to a parent C++ object. When the parent object was garbage-collected in Python, the reference became a dangling pointer, leading to unpredictable segmentation faults (use-after-free).
The Solution: This has been resolved by applying the py::return_value_policy::reference_internal policy to the binding. This ensures the parent object's lifetime is extended as long as the returned reference is in use by Python, preventing any memory corruption.
Tickets: