Closed DrWhax closed 11 years ago
He has some perl scripts running as well, it seems something might interfere when the code reaches perl_signal_register()?
Yup, it looks like the perl signal register failed for still unknown reasons. Is the "bt full" command gives more information?
We miss symbols :( http://sprunge.us/aQGM
(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
Hmmm, most probably a strlen() on a NULL pointer. We'll have to look at what perl_signal_register() does exactly in irssi.
http://pastie.org/private/33mg1fj8vga7loaqrr2vg
src/perl/perl-signals.c
This code looks funky. Irssi is one funky client.
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.
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