diff options
author | dscho <dscho> | 2005-05-14 11:13:52 +0000 |
---|---|---|
committer | dscho <dscho> | 2005-05-14 11:13:52 +0000 |
commit | 446a6fabac3d00f1f4e05cf6cba483f4bfb3efba (patch) | |
tree | 5b82f6d88e6522da6b725d3ba769e629568a082f /libvncserver/rfbserver.c | |
parent | 3a7e70de49823259558694a3f92401a9f966d9da (diff) | |
download | libtdevnc-446a6fabac3d00f1f4e05cf6cba483f4bfb3efba.tar.gz libtdevnc-446a6fabac3d00f1f4e05cf6cba483f4bfb3efba.zip |
fix memory leaks detected using valgrind
Diffstat (limited to 'libvncserver/rfbserver.c')
-rw-r--r-- | libvncserver/rfbserver.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c index 74f4fbd..7790522 100644 --- a/libvncserver/rfbserver.c +++ b/libvncserver/rfbserver.c @@ -413,7 +413,7 @@ rfbClientConnectionGone(cl) if (cl->next) cl->next->prev = cl->prev; - if(cl->sock) + if(cl->sock>0) close(cl->sock); #ifdef LIBVNCSERVER_HAVE_LIBZ @@ -610,6 +610,8 @@ rfbProcessClientInitMessage(cl) return; } + memset(buf,0,256); + si->framebufferWidth = Swap16IfLE(cl->screen->width); si->framebufferHeight = Swap16IfLE(cl->screen->height); si->format = cl->screen->serverFormat; @@ -617,10 +619,7 @@ rfbProcessClientInitMessage(cl) si->format.greenMax = Swap16IfLE(si->format.greenMax); si->format.blueMax = Swap16IfLE(si->format.blueMax); - if (strlen(cl->screen->desktopName) > 128) /* sanity check on desktop name len */ - ((char*)cl->screen->desktopName)[128] = 0; - - strcpy(buf + sz_rfbServerInitMsg, cl->screen->desktopName); + strncpy(buf + sz_rfbServerInitMsg, cl->screen->desktopName, 127); len = strlen(buf + sz_rfbServerInitMsg); si->nameLength = Swap32IfLE(len); |