s4/messaging/py: Fix leak of p_server_id
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 23 May 2023 00:49:28 +0000 (12:49 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 24 May 2023 00:50:31 +0000 (00:50 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/lib/messaging/pymessaging.c

index 2fb201edf293366d8849633473301a668a37cbfb..3b0771816a7254af66ae769234d222fc0d08d7d6 100644 (file)
@@ -210,18 +210,18 @@ static void py_msg_callback_wrapper(struct imessaging_context *msg,
        }
        *p_server_id = server_id;
 
-       if (!PyArg_ParseTuple(callback_and_tuple, "OO",
-                             &callback,
-                             &py_private)) {
-               return;
-       }
-
        py_server_id = py_return_ndr_struct("samba.dcerpc.server_id", "server_id", p_server_id, p_server_id);
        talloc_unlink(NULL, p_server_id);
        if (py_server_id == NULL) {
                return;
        }
 
+       if (!PyArg_ParseTuple(callback_and_tuple, "OO",
+                             &callback,
+                             &py_private)) {
+               return;
+       }
+
        result = PyObject_CallFunction(callback, discard_const_p(char, "OiOs#"),
                                       py_private,
                                       msg_type,