----- Forwarded message from Alexander Vodomerov <[EMAIL PROTECTED]> -----
Date: Mon, 09 May 2005 12:09:26 +0400 From: Alexander Vodomerov <[EMAIL PROTECTED]> To: Debian Bug Tracking System <[EMAIL PROTECTED]> Subject: Bug#308296: mc segfaults on charset encoding change Reply-To: Alexander Vodomerov <[EMAIL PROTECTED]>, [EMAIL PROTECTED] Resent-From: Alexander Vodomerov <[EMAIL PROTECTED]> Resent-To: debian-bugs-dist@lists.debian.org Resent-Cc: Stefano Melchior <[EMAIL PROTECTED]> Resent-Date: Mon, 09 May 2005 08:18:11 UTC Resent-Message-ID: <[EMAIL PROTECTED]> X-Debian-PR-Message: report 308296 X-Debian-PR-Package: mc X-Debian-PR-Keywords: patch X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 (1.212-2003-09-23-exp) on spohr.debian.org X-Spam-Status: No, hits=-8.0 required=4.0 tests=BAYES_00,HAS_PACKAGE autolearn=no version=2.60-bugs.debian.org_2005_01_02 X-Spam-Level: Resent-Sender: Debian BTS <[EMAIL PROTECTED]> Package: mc Version: 1:4.6.0-4.6.1-pre3-2 Severity: normal Tags: patch Thank you for enabling charset encoding, it's great! However, small bug causes invalid iconv(3) usage and causes mc segfault inside glibc. It is a result of wrong iconv outbuf parameter: it points to buffer, but it should really point to pointer to buffer (char ** instead of char*). The attached patch fixes the problem (at least for me). -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.11.8 Locale: LANG=ru_RU.KOI8-R, LC_CTYPE=ru_RU.KOI8-R (charmap=KOI8-R) Versions of packages mc depends on: ii libc6 2.3.2.ds1-21 GNU C Library: Shared libraries an ii libglib2.0-0 2.6.4-1 The GLib library of C routines ii libgpmg1 1.19.6-20 General Purpose Mouse - shared lib -- no debconf information --- mc-4.6.0-4.6.1-pre3/src/charsets.c.orig 2005-05-09 12:07:42.000000000 +0400 +++ mc-4.6.0-4.6.1-pre3/src/charsets.c 2005-05-09 12:07:30.000000000 +0400 @@ -143,13 +143,15 @@ translate_character (iconv_t cd, char c) { char obuf[4]; + char *obufptr; size_t ibuflen, obuflen, count; ICONV_CONST char *ibuf = &c; ibuflen = 1; obuflen = sizeof(obuf); - count = iconv (cd, &ibuf, &ibuflen, (char **)&obuf, &obuflen); + obufptr = obuf; + count = iconv (cd, &ibuf, &ibuflen, (char **)&obufptr, &obuflen); if (count != (size_t)(-1) && ibuflen == 0) return obuf[0]; ----- End forwarded message -----
signature.asc
Description: Digital signature
_______________________________________________ Mc-devel mailing list http://mail.gnome.org/mailman/listinfo/mc-devel