Package: vncsnapshot Version: 1.2a-3 Severity: important Tags: patch
I cannot capture vnc screen using vncsnapshot installed on an amd64 host. I noticed that vncsnapshot cannot correctly deduce protocol information from the VNC packets sent by VNC server. The problem lies in the header file rfb.h, which defined CARD32 as unsigned long, 64bit integer on amd64. According to stdint.h, an unsigned 32bit integer on Linux should be defined as 'unsigned int'. -- System Information: Debian Release: 5.0.1 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.26-2-amd64 (SMP w/4 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/bash Versions of packages vncsnapshot depends on: ii libc6 2.7-18 GNU C Library: Shared libraries ii libgcc1 1:4.3.2-1.1 GCC support library ii libjpeg62 6b-14 The Independent JPEG Group's JPEG ii libstdc++6 4.3.2-1.1 The GNU Standard C++ Library v3 ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime Versions of packages vncsnapshot recommends: ii vnc4server 4.1.1+X4.3.0-31 Virtual network computing server s vncsnapshot suggests no packages. -- no debconf information
diff -Naur vncsnapshot-1.2a.orig/rfb.h vncsnapshot-1.2a/rfb.h --- vncsnapshot-1.2a.orig/rfb.h 2009-07-08 07:47:53.000000000 +0800 +++ vncsnapshot-1.2a/rfb.h 2009-07-03 23:52:53.000000000 +0800 @@ -34,7 +34,7 @@ // Define the CARD* types as used in X11/Xmd.h -typedef unsigned long CARD32; +typedef unsigned int CARD32; typedef unsigned short CARD16; typedef short INT16; typedef unsigned char CARD8;