pidl/ndr/python: avoid memory errors in getsetters
[gd/samba-autobuild/.git] / pidl / lib / Parse / Pidl / Samba4 / Python.pm
index 97c417adf35c4e8dc2f750f28041c3509c26092e..8d5de31e7bb2f9f4bad77051b5f6ce6436178415 100644 (file)
@@ -201,6 +201,14 @@ sub PythonElementGetSet($$$$$$) {
        $self->indent;
        $self->pidl("$cname *object = ($cname *)pytalloc_get_ptr(obj);");
        $self->pidl("PyObject *py_$e->{NAME};");
+       my $l = $e->{LEVELS}[0];
+       if ($l->{TYPE} eq "POINTER") {
+               $self->pidl("if ($varname == NULL) {");
+               $self->indent;
+               $self->pidl("Py_RETURN_NONE;");
+               $self->deindent;
+               $self->pidl("}");
+       }
        $self->ConvertObjectToPython("pytalloc_get_mem_ctx(obj)", $env, $e, $varname, "py_$e->{NAME}", "return NULL;");
        $self->pidl("return py_$e->{NAME};");
        $self->deindent;