Package: ircii
Version: 20051015-1
Severity: normal

Doing /set -irc_encoding command makes ircii segfault. Also set 
-display_encoding and set -input_encoding nukes.

I built a unstripped deb package and used the binary with gdb:

/set -irc_encoding
Program received signal SIGSEGV, Segmentation fault.
0x0fe5bad4 in strlen () from /lib/tls/libc.so.6
(gdb) bt
#0  0x0fe5bad4 in strlen () from /lib/tls/libc.so.6
#1  0x0fe006f0 in iconv_open () from /lib/tls/libc.so.6
#2  0x10046c74 in set_irc_encoding ()
#3  0x1004784c in set_var_value ()
#4  0x10047c3c in set_variable ()
#5  0x100153f4 in parse_command ()
#6  0x1001610c in parse_line ()
#7  0x100162a8 in send_line ()
#8  0x10014b18 in edit_char ()
#9  0x100270d4 in irc_io ()
#10 0x10027c64 in main ()
(gdb) 

The bug is in source/translat.c functions set_irc_encoding, 
set_display_encoding and set_input_encoding. These functions pass the 
NULL 'enc' to iconv_open() that in turn passes the given pointer to 
strlen() -> boom.

Fix is simple, add check for NULL string pointer before passing the 
argument to iconv_open. Corresponding else-statement should probably NULL 
the matching _encoding variable (so user can really disable the 
encoding).


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: powerpc (ppc)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.13-pegasos
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)

Versions of packages ircii depends on:
ii  libc6                         2.3.5-8    GNU C Library: Shared libraries an
ii  libncurses5                   5.5-1      Shared libraries for terminal hand

ircii recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to