summaryrefslogtreecommitdiffstats
path: root/libvncserver/rfbserver.c
diff options
context:
space:
mode:
authordscho <dscho>2005-05-14 11:13:52 +0000
committerdscho <dscho>2005-05-14 11:13:52 +0000
commit446a6fabac3d00f1f4e05cf6cba483f4bfb3efba (patch)
tree5b82f6d88e6522da6b725d3ba769e629568a082f /libvncserver/rfbserver.c
parent3a7e70de49823259558694a3f92401a9f966d9da (diff)
downloadlibtdevnc-446a6fabac3d00f1f4e05cf6cba483f4bfb3efba.tar.gz
libtdevnc-446a6fabac3d00f1f4e05cf6cba483f4bfb3efba.zip
fix memory leaks detected using valgrind
Diffstat (limited to 'libvncserver/rfbserver.c')
-rw-r--r--libvncserver/rfbserver.c9
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);