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

Reply via email to