diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/rpc/pyrpc.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source4/librpc/rpc/pyrpc.h b/source4/librpc/rpc/pyrpc.h index 968bf863c4c..05c1adb8307 100644 --- a/source4/librpc/rpc/pyrpc.h +++ b/source4/librpc/rpc/pyrpc.h @@ -26,10 +26,19 @@ #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) #endif -#define PY_CHECK_TYPE(type, var, fail) \ - if (!PyObject_TypeCheck(var, type)) {\ - PyErr_Format(PyExc_TypeError, __location__ ": Expected type '%s' for '%s' of type '%s'", (type)->tp_name, #var, Py_TYPE(var)->tp_name); \ - fail; \ +#define PY_CHECK_TYPE(type, var, fail) \ + if (var == NULL) { \ + PyErr_Format(PyExc_TypeError, \ + __location__ \ + ": Expected type '%s' for '%s', got NULL", \ + (type)->tp_name, #var); \ + fail; \ + } else if (!PyObject_TypeCheck(var, type)) { \ + PyErr_Format(PyExc_TypeError, \ + __location__ \ + ": Expected type '%s' for '%s' of type '%s'", \ + (type)->tp_name, #var, Py_TYPE(var)->tp_name); \ + fail; \ } #define dom_sid0_Type dom_sid_Type |