From f2a93afb4660cfe206171756cb813b34b2ce0e7c Mon Sep 17 00:00:00 2001 From: Robbert Klarenbeek Date: Sun, 30 Mar 2014 13:14:18 -0500 Subject: [PATCH] Address #12 ClientData does not get freed rfbClientSetClientData() allocates a new rfbClientData, but never gets cleaned up, which causes memory leaks. Signed-off-by: Johannes Schindelin --- libvncclient/vncviewer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libvncclient/vncviewer.c b/libvncclient/vncviewer.c index 8b09d87..3b16a6f 100644 --- a/libvncclient/vncviewer.c +++ b/libvncclient/vncviewer.c @@ -372,6 +372,12 @@ void rfbClientCleanup(rfbClient* client) { FreeTLS(client); + while (client->clientData) { + rfbClientData* next = client->clientData->next; + free(client->clientData); + client->clientData = next; + } + if (client->sock >= 0) close(client->sock); if (client->listenSock >= 0)