Package: libmdbtools
Version: 0.5.99.0.6pre1.0.20051109-3
Severity: important
Tags: patch
Hello,
When I try mdb-tables file.mdb on my AMD64 machine, a get a segmentation
fault, whereas the same
thing with the same file on a 32 bit machine does work fine. This is due to a
mismatch in the size
expected by iconv and the size given (on a 64 bits arch) in src/libmdb/iconv.c
: mdb_unicode2ascii.
The attached patch fixes it on AMD64 and definitely shouldn't break anything
else.
Regards,
Vincent Fourmond
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/dash
Kernel: Linux 2.6.16
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1) (ignored: LC_ALL set to
en_GB)
Versions of packages libmdbtools depends on:
ii libc6 2.3.6-15 GNU C Library: Shared libraries
ii libglib2.0-0 2.10.3-2 The GLib library of C routines
libmdbtools recommends no packages.
-- no debconf information
--- mdbtools-0.5.99.0.6pre1.0.20051109/src/libmdb/iconv.c 2006-07-09 23:06:33.000000000 +0200
+++ mdbtools-0.5.99.0.6pre1.0.20051109.new/src/libmdb/iconv.c 2006-07-09 22:51:17.000000000 +0200
@@ -31,8 +31,8 @@
mdb_unicode2ascii(MdbHandle *mdb, unsigned char *src, unsigned int slen, unsigned char *dest, unsigned int dlen)
{
unsigned char *tmp = NULL;
- unsigned int tlen = 0;
- unsigned int len_in, len_out;
+ size_t tlen = 0;
+ size_t len_in, len_out;
char *in_ptr, *out_ptr;
if ((!src) || (!dest))