]> git.proxmox.com Git - mirror_corosync.git/commitdiff
qdevice-net: Free send buffer on error (leak)
authorJan Friesse <jfriesse@redhat.com>
Mon, 14 Mar 2016 09:17:35 +0000 (10:17 +0100)
committerJan Friesse <jfriesse@redhat.com>
Tue, 28 Jun 2016 11:58:40 +0000 (13:58 +0200)
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
qdevices/qdevice-net-msg-received.c
qdevices/qnetd-client-send.c

index c6bfc809f2a7953ca8ae7dcb7ca790252e44b352..a3aa6c54daf9d020e4bf6ad4e8e3e9be680b959d 100644 (file)
@@ -354,6 +354,7 @@ qdevice_net_msg_received_init_reply(struct qdevice_net_instance *instance,
                qdevice_log(LOG_ERR, "Can't allocate send buffer for set option msg");
 
                instance->disconnect_reason = QDEVICE_NET_DISCONNECT_REASON_CANT_ALLOCATE_MSG_BUFFER;
+               send_buffer_list_discard_new(&instance->send_buffer_list, send_buffer);
 
                return (-1);
        }
@@ -821,9 +822,12 @@ qdevice_net_msg_received_vote_info(struct qdevice_net_instance *instance,
                    "vote info reply list msg");
 
                instance->disconnect_reason = QDEVICE_NET_DISCONNECT_REASON_CANT_ALLOCATE_MSG_BUFFER;
+               send_buffer_list_discard_new(&instance->send_buffer_list, send_buffer);
                return (-1);
        }
 
+       send_buffer_list_put(&instance->send_buffer_list, send_buffer);
+
        return (0);
 }
 
index 2fa8f9e89152996c9d54a2cd930626d5b7a427c4..dc8f95537c53c29a515af453da64c2525589cf74 100644 (file)
@@ -60,6 +60,7 @@ qnetd_client_send_err(struct qnetd_client *client, int add_msg_seq_number, uint3
                qnetd_log(LOG_ERR, "Can't alloc server error msg. "
                    "Disconnecting client connection.");
 
+               send_buffer_list_discard_new(&client->send_buffer_list, send_buffer);
                return (-1);
        };
 
@@ -88,6 +89,7 @@ qnetd_client_send_vote_info(struct qnetd_client *client, uint32_t msg_seq_number
                qnetd_log(LOG_ERR, "Can't alloc vote info msg. "
                    "Disconnecting client connection.");
 
+               send_buffer_list_discard_new(&client->send_buffer_list, send_buffer);
                return (-1);
        };