Skip to content

Commit 4b6ec6b

Browse files
author
ONNX GenAI Assistant
committed
fix: Correct pointer dereference in NamedTensors.__setitem__
Fixed segfault in test_NamedTensors caused by incorrect pointer handling. Issue: - ToOgaTensor() returns std::unique_ptr<OgaPy::OgaTensor> - tensor.get() returns OgaPy::OgaTensor* (wrapper class pointer) - We need tensor->get() to get the inner C API OgaTensor* pointer The reinterpret_cast was treating a wrapper pointer as a C API pointer, causing invalid memory access and segfault. Tested locally - NamedTensors now works correctly.
1 parent 1930baf commit 4b6ec6b

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/python/python.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ NB_MODULE(onnxruntime_genai, m) {
403403
})
404404
.def("__setitem__", [](OgaPy::OgaNamedTensors& named_tensors, const std::string& name, nb::ndarray<>& value) {
405405
auto tensor = ToOgaTensor(value);
406-
OgaPy::OgaCheckResult(OgaNamedTensorsSet(named_tensors.get(), name.c_str(), reinterpret_cast<OgaTensor*>(tensor.get())));
406+
OgaPy::OgaCheckResult(OgaNamedTensorsSet(named_tensors.get(), name.c_str(), tensor->get()));
407407
})
408408
.def("__setitem__", [](OgaPy::OgaNamedTensors& named_tensors, const std::string& name, OgaPy::OgaTensor& value) {
409409
OgaPy::OgaCheckResult(OgaNamedTensorsSet(named_tensors.get(), name.c_str(), value.get()));

0 commit comments

Comments
 (0)