talloc: improve pytalloc error code paths if talloc* fails
[metze/samba/wip.git] / lib / talloc / pytalloc.c
index 95dbb297a4606f144f5eacb84fe0911e98cfe5c1..05f1206f7665479ac12ecb080add63801253b756 100644 (file)
@@ -96,8 +96,10 @@ static PyObject *pytalloc_default_repr(PyObject *obj)
 static void pytalloc_dealloc(PyObject* self)
 {
        pytalloc_Object *obj = (pytalloc_Object *)self;
-       assert(talloc_unlink(NULL, obj->talloc_ctx) != -1);
-       obj->talloc_ctx = NULL;
+       if (obj->talloc_ctx != NULL) {
+               assert(talloc_unlink(NULL, obj->talloc_ctx) != -1);
+               obj->talloc_ctx = NULL;
+       }
        self->ob_type->tp_free(self);
 }
 
@@ -176,8 +178,10 @@ static PyObject *pytalloc_base_default_repr(PyObject *obj)
 static void pytalloc_base_dealloc(PyObject* self)
 {
        pytalloc_BaseObject *obj = (pytalloc_BaseObject *)self;
-       assert(talloc_unlink(NULL, obj->talloc_ctx) != -1);
-       obj->talloc_ctx = NULL;
+       if (obj->talloc_ctx != NULL) {
+               assert(talloc_unlink(NULL, obj->talloc_ctx) != -1);
+               obj->talloc_ctx = NULL;
+       }
        self->ob_type->tp_free(self);
 }