cryptodotis / irssi-otr

LibOTR functionality in Irssi.
GNU General Public License v2.0
183 stars 24 forks source link

Crash in ArchLinux #34

Closed DrWhax closed 11 years ago

DrWhax commented 11 years ago

At the hackathon a friend of mine was trying to get irssi-otr running under arch. After typing in; /load otr. The irssi crashes with the following backtrace: http://sprunge.us/QiQe

Linux panther 3.8.7-1-ARCH #1 SMP PREEMPT Sat Apr 13 09:01:47 CEST 2013 x86_64 GNU/Linux

DrWhax commented 11 years ago

He has some perl scripts running as well, it seems something might interfere when the code reaches perl_signal_register()?

dgoulet commented 11 years ago

Yup, it looks like the perl signal register failed for still unknown reasons. Is the "bt full" command gives more information?

DrWhax commented 11 years ago

We miss symbols :( http://sprunge.us/aQGM

DrWhax commented 11 years ago

(gdb) info registers rax 0x0 0 rbx 0x3 3 rcx 0x3 3 rdx 0x4c4c554e 1280070990 rsi 0x7f265f1c45bf 139802781173183 rdi 0x3 3 rbp 0x7f265f1c3189 0x7f265f1c3189 rsp 0x7fff52f1e3d8 0x7fff52f1e3d8 r8 0x0 0 r9 0x8 8 r10 0xfffffc00 4294966272 r11 0x7f26604fe090 139802801332368 r12 0x7f265f3c63e0 139802783278048 r13 0x81d940 8509760 r14 0x7f265f1c25eb 139802781165035 r15 0x81d8b0 8509616 rip 0x7f26604db7f1 0x7f26604db7f1 <__strlen_sse2_pminub+17> eflags 0x10283 [ CF SF IF RF ] cs 0xe033 57395 ss 0xe02b 57387 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0

dgoulet commented 11 years ago

Hmmm, most probably a strlen() on a NULL pointer. We'll have to look at what perl_signal_register() does exactly in irssi.

DrWhax commented 11 years ago

http://pastie.org/private/33mg1fj8vga7loaqrr2vg

src/perl/perl-signals.c

This code looks funky. Irssi is one funky client.

dgoulet commented 11 years ago

Ok there is a HUGE problem. We register a "otr event" signal like so:

perl_signal_register("otr event", signal_args_otr_event);

And here is the second argument we pass:

static const char *signal_args_otr_event[] = { "iobject", "string", "string", "NULL" };

Double quotes around NULL does NOT make it null :P

There is the segfault... Can you try to remove the quotes and see if it fixes the issue. If so, I can push a patch to close this issue.