Hi Jö Thanks a lot for the report and patch. Will be applied when lenny is out of the deep freeze.
Best regards, // Ola On Sat, Dec 27, 2008 at 11:02:29PM +0100, Jö Fahlke wrote: > Package: xvnc4viewer > Version: 4.1.1+X4.3.0-30 > Severity: normal > Tags: patch > > When reading server host and number from stdin, xvnc4viewer does not check > whether anything was entered at all. When the user just presses C-d or > fgets() sees End-Of-File for some other reason, it will leave the buffer it > should read the line into uninitialized, which means that getHostAndPort() is > called with an uninitialized string which can't be good. > > Also, if the user somehow gives a line without trailing newline to xvnc4viewer > when it read server host and number, xvnc4viewer will chop of the last > character of the server specification. So lets check whether the last > character actually is '\n' first. > > Bye, > Jö. > > > ====================================================================== > diff -ru vnc4-4.1.1+X4.3.0_orig/unix/vncviewer/CConn.cxx > vnc4-4.1.1+X4.3.0/unix/vncviewer/CConn.cxx > --- vnc4-4.1.1+X4.3.0_orig/unix/vncviewer/CConn.cxx 2008-12-27 > 22:32:48.000000000 +0100 > +++ vnc4-4.1.1+X4.3.0/unix/vncviewer/CConn.cxx 2008-12-27 22:28:37.000000000 > +0100 > @@ -93,9 +93,15 @@ > /* Get server */ > fprintf(stderr, "Server: "); > vncServerName = new char[128]; > - fgets(vncServerName, 128, stdin); > - /* remove \n at the end */ > - vncServerName[strlen(vncServerName)-1] = '\0'; > + if(fgets(vncServerName, 128, stdin)) { > + size_t len = strlen(vncServerName); > + /* remove \n at the end */ > + if(vncServerName[len-1] == '\n') > + vncServerName[len-1] = '\0'; > + } else { > + /* fgets failed, probably eof -- assume empty string as input */ > + vncServerName[0] = '\0'; > + } > getHostAndPort(vncServerName, &serverHost, &serverPort); > } else { > ServerDialog dlg(dpy, &options, &about); > ====================================================================== > > > -- System Information: > Debian Release: 5.0 > APT prefers testing-proposed-updates > APT policy: (500, 'testing-proposed-updates'), (500, 'testing') > Architecture: i386 (i686) > > Kernel: Linux 2.6.26-1-686 (SMP w/2 CPU cores) > Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/bash > > Versions of packages xvnc4viewer depends on: > ii libc6 2.7-16 GNU C Library: Shared libraries > ii libgcc1 1:4.3.2-1 GCC support library > ii libice6 2:1.0.4-1 X11 Inter-Client Exchange library > ii libsm6 2:1.0.3-2 X11 Session Management library > ii libstdc++6 4.3.2-1 The GNU Standard C++ Library v3 > ii libx11-6 2:1.1.5-2 X11 client-side library > ii libxext6 2:1.0.4-1 X11 miscellaneous extension > librar > ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime > > xvnc4viewer recommends no packages. > > xvnc4viewer suggests no packages. > > -- no debconf information > > -- > Computers are like air conditioners. Both stop working, if you open > windows. > -- Adam Heath -- --------------------- Ola Lundqvist --------------------------- / o...@debian.org Annebergsslingan 37 \ | o...@inguza.com 654 65 KARLSTAD | | http://inguza.com/ +46 (0)70-332 1551 | \ gpg/f.p.: 7090 A92B 18FE 7994 0C36 4FE4 18A1 B1CF 0FE5 3DD9 / --------------------------------------------------------------- -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org