]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
FIXUP: Improve memory handling on py_net_change_password
authorAndrew Bartlett <abartlet@samba.org>
Wed, 16 May 2018 18:37:28 +0000 (06:37 +1200)
committerNoel Power <npower@samba.org>
Thu, 17 May 2018 12:28:19 +0000 (14:28 +0200)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Noel Power <noel.power@suse.com>
Autobuild-User(master): Noel Power <npower@samba.org>
Autobuild-Date(master): Thu May 17 14:28:19 CEST 2018 on sn-devel-144

source4/libnet/py_net.c

index 6aff373b359e57f1946b758e48c9420cffc1893f..65060d530912a42bbbdefcb8255ba8f84f29f02d 100644 (file)
@@ -195,22 +195,27 @@ static PyObject *py_net_change_password(py_net_Object *self, PyObject *args, PyO
 
        mem_ctx = talloc_new(ev);
        if (mem_ctx == NULL) {
+               PyMem_Free(discard_const_p(char, newpass));
+               PyMem_Free(discard_const_p(char, oldpass));
                PyErr_NoMemory();
                return NULL;
        }
 
        status = libnet_ChangePassword(self->libnet_ctx, mem_ctx, &r);
+
+       PyMem_Free(discard_const_p(char, newpass));
+       PyMem_Free(discard_const_p(char, oldpass));
+
        if (NT_STATUS_IS_ERR(status)) {
                PyErr_SetNTSTATUS_and_string(status,
                                             r.generic.out.error_string
                                             ? r.generic.out.error_string
                                             : nt_errstr(status));
+               talloc_free(mem_ctx);
                return NULL;
        }
 
        talloc_free(mem_ctx);
-       PyMem_Free(discard_const_p(char,newpass));
-       PyMem_Free(discard_const_p(char,oldpass));
        Py_RETURN_NONE;
 }