Package: makeztxt Version: 1.60-5 Severity: important Tags: patch
makeztxt creates invalid .pdb files (and failes to decompreses correct .pdb files) when used on 64-bit platform like AMD (using gcc-4.1.1-15). The issue is that "unsigned long" is 64 bits longs on AMD64 (as opposed to 32bits long as on i386) which leads to invalid .pdb header sizes iz makeztxt The attached patch fixes it using correct size (from glibc macros). -- System Information: Debian Release: 4.0 APT prefers testing APT policy: (650, 'testing'), (600, 'unstable'), (550, 'experimental') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.20-1-amd64 Locale: LANG=hr_HR, LC_CTYPE=hr_HR (charmap=ISO-8859-2) Versions of packages makeztxt depends on: ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries ii zlib1g 1:1.2.3-13 compression library - runtime makeztxt recommends no packages. -- no debconf information
diff -ur makeztxt-1.60.orig/libztxt/databaseHdrs.h makeztxt-1.60-fixed/libztxt/databaseHdrs.h --- makeztxt-1.60.orig/libztxt/databaseHdrs.h 2003-08-12 14:05:21.000000000 +0200 +++ makeztxt-1.60-fixed/libztxt/databaseHdrs.h 2007-04-02 00:19:36.000000000 +0200 @@ -10,10 +10,12 @@ #ifndef __DATABASEHDRS_H__ #define __DATABASEHDRS_H__ +#include <bits/types.h> + /* Normal Palm typedefs */ -typedef unsigned char UInt8; -typedef unsigned short UInt16; -typedef unsigned long UInt32; +typedef __uint8_t UInt8; +typedef __uint16_t UInt16; +typedef __uint32_t UInt32; typedef UInt32 LocalID; /* Max length of DB name */