From 3ccb60784ef437315f7183d6c2d45e4afdbe36aa Mon Sep 17 00:00:00 2001 From: Minh Vu Date: Sat, 4 Jul 2026 00:52:31 +0200 Subject: [PATCH] Fix null dereference in select_overload capsule path --- numba_cuda/numba/cuda/cext/_typeconv.cpp | 1 + numba_cuda/numba/cuda/tests/cudapy/test_typeconv.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/numba_cuda/numba/cuda/cext/_typeconv.cpp b/numba_cuda/numba/cuda/cext/_typeconv.cpp index ca414e08d..fd773f149 100644 --- a/numba_cuda/numba/cuda/cext/_typeconv.cpp +++ b/numba_cuda/numba/cuda/cext/_typeconv.cpp @@ -90,6 +90,7 @@ select_overload(PyObject* self, PyObject* args) TypeManager *tm = unwrap_TypeManager(tmcap); if (!tm) { BAD_TM_ARGUMENT; + return NULL; } Py_ssize_t sigsz = PySequence_Size(sigtup); diff --git a/numba_cuda/numba/cuda/tests/cudapy/test_typeconv.py b/numba_cuda/numba/cuda/tests/cudapy/test_typeconv.py index 82c25d723..097a1884f 100644 --- a/numba_cuda/numba/cuda/tests/cudapy/test_typeconv.py +++ b/numba_cuda/numba/cuda/tests/cudapy/test_typeconv.py @@ -4,6 +4,7 @@ import itertools from numba.cuda import types +from numba.cuda.cext import _typeconv from numba.cuda.typeconv.typeconv import TypeManager, TypeCastingRules from numba.cuda.typeconv import rules from numba.cuda.typeconv import castgraph, Conversion @@ -94,6 +95,10 @@ def test_typeconv(self): with self.assertRaises(TypeError): sel = tm.select_overload(sig, ovs, False, False) + def test_select_overload_bad_type_manager(self): + with self.assertRaises(TypeError): + _typeconv.select_overload(None, (), (), True, False) + def test_default_rules(self): tm = rules.default_type_manager self.check_number_compatibility(tm.check_compatible)