diff options
author | Amandeep Singh <aman.dedman@gmail.com> | 2013-10-09 04:12:08 +0530 |
---|---|---|
committer | Martin T. H. Sandsmark <martin.sandsmark@kde.org> | 2014-08-03 14:07:00 +0200 |
commit | afd1d329ed117f6e4d8c46eba362b7d5c51184ac (patch) | |
tree | a0beb628f9468c376d81547f8daa456597ff10ba | |
parent | dca1048239b5f3b973a847a21de1ee83c92f6631 (diff) | |
download | libtdevnc-afd1d329ed117f6e4d8c46eba362b7d5c51184ac.tar.gz libtdevnc-afd1d329ed117f6e4d8c46eba362b7d5c51184ac.zip |
Fix crash in krfb
Krfb crashes on quit, if any client is connected
due to a rfbClientConnectionGone call missing
-rw-r--r-- | libvncserver/main.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libvncserver/main.c b/libvncserver/main.c index 4cb18ac..b8cdde1 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -1061,10 +1061,13 @@ void rfbShutdownServer(rfbScreenInfoPtr screen,rfbBool disconnectClients) { if(disconnectClients) { rfbClientPtr cl; rfbClientIteratorPtr iter = rfbGetClientIterator(screen); - while( (cl = rfbClientIteratorNext(iter)) ) - if (cl->sock > -1) - /* we don't care about maxfd here, because the server goes away */ - rfbCloseClient(cl); + while( (cl = rfbClientIteratorNext(iter)) ) { + if (cl->sock > -1) { + /* we don't care about maxfd here, because the server goes away */ + rfbCloseClient(cl); + rfbClientConnectionGone(cl); + } + } rfbReleaseClientIterator(iter); } |