From 09846721f29d5f3f2bf759f9da45e1052e4ca311 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 24 Jan 2017 12:34:23 +0100 Subject: [PATCH] make sure that the passed 'self' pointer to a method of the Python wrapper is never null --- src/Tools/generateTemplates/templateClassPyExport.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Tools/generateTemplates/templateClassPyExport.py b/src/Tools/generateTemplates/templateClassPyExport.py index de93a58f5..4f70c1771 100644 --- a/src/Tools/generateTemplates/templateClassPyExport.py +++ b/src/Tools/generateTemplates/templateClassPyExport.py @@ -460,6 +460,12 @@ PyObject * @self.export.Name@::staticCallback_@i.Name@ (PyObject *self, PyObject PyObject * @self.export.Name@::staticCallback_@i.Name@ (PyObject *self, PyObject *args) - { + // make sure that not a null pointer is passed + if (!self) { + PyErr_SetString(PyExc_TypeError, "descriptor '@i.Name@' of '@self.export.Namespace@.@self.export.Twin@' object needs an argument"); + return NULL; + } + // test if twin object not allready deleted if (!static_cast(self)->isValid()) { PyErr_SetString(PyExc_ReferenceError, "This object is already deleted most likely through closing a document. This reference is no longer valid!");