patch 9.0.1925: if_python: still undefined behaviour with function pointer
Problem: if_python: still undefined behaviour with function pointer
Solution: fix remaining problems
Fix remaining issues in the if_python code in casting incompatible
function pointers leading to Clang 17 giving runtime errors during
UBSAN.
closes: #13140
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
diff --git a/src/if_python3.c b/src/if_python3.c
index e14185e..9d53caf 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -1533,7 +1533,7 @@
{
GET_ATTR_STRING(name, nameobj);
- return OutputSetattr((OutputObject *)(self), name, val);
+ return OutputSetattr(self, name, val);
}
///////////////////////////////////////////////////////
@@ -1611,7 +1611,7 @@
{
GET_ATTR_STRING(name, nameobj);
- return BufferSetattr((BufferObject *)(self), name, val);
+ return BufferSetattr(self, name, val);
}
//////////////////
@@ -1837,7 +1837,7 @@
{
GET_ATTR_STRING(name, nameobj);
- return WindowSetattr((WindowObject *)(self), name, val);
+ return WindowSetattr(self, name, val);
}
// Tab page list object - Definitions
@@ -1911,7 +1911,7 @@
DictionarySetattro(PyObject *self, PyObject *nameobj, PyObject *val)
{
GET_ATTR_STRING(name, nameobj);
- return DictionarySetattr((DictionaryObject *)(self), name, val);
+ return DictionarySetattr(self, name, val);
}
// List object - Definitions
@@ -1931,7 +1931,7 @@
ListSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
{
GET_ATTR_STRING(name, nameobj);
- return ListSetattr((ListObject *)(self), name, val);
+ return ListSetattr(self, name, val);
}
// Function object - Definitions