From: Jan Friesse Date: Mon, 14 Mar 2016 09:17:35 +0000 (+0100) Subject: qdevice-net: Free send buffer on error (leak) X-Git-Tag: v2.4.0~90 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=500b8978c09f59463388a3f7b539534768d07382;p=mirror_corosync.git qdevice-net: Free send buffer on error (leak) Signed-off-by: Jan Friesse --- diff --git a/qdevices/qdevice-net-msg-received.c b/qdevices/qdevice-net-msg-received.c index c6bfc809..a3aa6c54 100644 --- a/qdevices/qdevice-net-msg-received.c +++ b/qdevices/qdevice-net-msg-received.c @@ -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); } diff --git a/qdevices/qnetd-client-send.c b/qdevices/qnetd-client-send.c index 2fa8f9e8..dc8f9553 100644 --- a/qdevices/qnetd-client-send.c +++ b/qdevices/qnetd-client-send.c @@ -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); };