pidl:Samba4/Python: fix memory leak in _ndr_print functions
[ira/wip.git] / pidl / lib / Parse / Pidl / Samba4 / Python.pm
index d6eab12c5c03a7a9d09eefbe43fe428e310ae190..7f6f94e748148c70211687a82aead52faf72862b 100644 (file)
@@ -297,9 +297,14 @@ sub PythonStruct($$$$$$)
                $self->pidl("{");
                $self->indent;
                $self->pidl("$cname *object = ($cname *)py_talloc_get_ptr(py_obj);");
+               $self->pidl("PyObject *ret;");
                $self->pidl("char *retstr;");
+               $self->pidl("");
                $self->pidl("retstr = ndr_print_struct_string(py_talloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_$name, \"$name\", object);");
-               $self->pidl("return PyString_FromString(retstr);");
+               $self->pidl("ret = PyString_FromString(retstr);");
+               $self->pidl("talloc_free(retstr);");
+               $self->pidl("");
+               $self->pidl("return ret;");
                $self->deindent;
                $self->pidl("}");
                $self->pidl("");