diff --git a/TODO b/TODO index 635081b..3139f35 100644 --- a/TODO +++ b/TODO @@ -2,6 +2,7 @@ immediate: ---------- - Add sources for the java stuff. - Implement encryption in libvncserver. +- Add a libvncclient-config script. make SDLvncviewer more versatile - test for missing keys (especially "[]{}" with ./examples/mac), diff --git a/libvncclient/rfbproto.c b/libvncclient/rfbproto.c index 8064b56..505ef50 100644 --- a/libvncclient/rfbproto.c +++ b/libvncclient/rfbproto.c @@ -387,8 +387,8 @@ ConnectToRFBServer(rfbClient* client,const char *hostname, int port) return FALSE; } setbuf(rec->file,NULL); - fread(buffer,1,strlen(magic),rec->file); - if (strncmp(buffer,magic,strlen(magic))) { + + if (fread(buffer,1,strlen(magic),rec->file) != strlen(magic) || strncmp(buffer,magic,strlen(magic))) { rfbClientLog("File %s was not recorded by vncrec.\n",client->serverHost); fclose(rec->file); return FALSE; diff --git a/libvncclient/sockets.c b/libvncclient/sockets.c index 76441f9..6c47491 100644 --- a/libvncclient/sockets.c +++ b/libvncclient/sockets.c @@ -111,7 +111,7 @@ ReadFromRFBServer(rfbClient* client, char *out, unsigned int n) rec->tv=tv; } - return (fread(out,1,n,rec->file)<0?FALSE:TRUE); + return (fread(out,1,n,rec->file) != n ? FALSE : TRUE); } if (n <= client->buffered) { diff --git a/vncterm/LinuxVNC.c b/vncterm/LinuxVNC.c index 9b58954..99e6b1d 100644 --- a/vncterm/LinuxVNC.c +++ b/vncterm/LinuxVNC.c @@ -152,7 +152,10 @@ int main(int argc,char **argv) #ifdef USE_OLD_VCS fread(buffer,width,height,tty_file); #else - fread(buffer,width*height*2+4,1,tty_file); + if(fread(buffer,width*height*2+4,1,tty_file) != 1) { + rfbErr("Error reading framebuffer\n"); + exit(1); + } vcHideCursor(console); #endif fclose(tty_file);