[PATCH spice-server v2 2/2] reds: Fix leaks if reds_init_client_ssl_connection fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If a client is unable to complete the TLS handshake phase
reds_init_client_ssl_connection leaked some memory as the stream is not
correctly freed.
This also causes the stream to send the SPICE_CHANNEL_EVENT_DISCONNECTED
event. Otherwise only SPICE_CHANNEL_EVENT_CONNECTED was sent.

Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 server/reds.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Changes since v1:
- reuse reds_link_free.

diff --git a/server/reds.c b/server/reds.c
index 24ec2bdde..a73d00f75 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -2503,9 +2503,10 @@ static RedLinkInfo *reds_init_client_ssl_connection(RedsState *reds, int socket)
     return link;
 
 error:
-    free(link->stream);
-    BN_free(link->tiTicketing.bn);
-    free(link);
+    /* close the stream but do not close the socket, this API is
+     * supposed to not close it if it fails */
+    link->stream->socket = -1;
+    reds_link_free(link);
     return NULL;
 }
 
-- 
2.13.5

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]