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 */

Reply via email to