Hi. Thank you very much. The patch was apply in the centerim's git repository [1]
I will do a new release on Debian soon. Regards. [1] http://repo.or.cz/w/centerim.git?a=shortlog;h=mob On 10/26/07, Chris Donoghue <[EMAIL PROTECTED]> wrote: > Perhaps this is fine on i386 version and not amd64. > > I had the following backtrace on amd64: > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x2b2488ece270 (LWP 10505)] > 0x00002b248748f4f0 in strcmp () from /lib/libc.so.6 > (gdb) backtrace > #0 0x00002b248748f4f0 in strcmp () from /lib/libc.so.6 > #1 0x0000000000671ee4 in _yahoo_assign_server_settings (ap=0x7fff26115a00) > at libyahoo2.c:296 > #2 0x000000000067b097 in yahoo_init_with_attributes ( > username=0xb47c88 "****", password=0xb48188 "****") at libyahoo2.c:3408 > #3 0x000000000052e262 in yahoohook::connect (this=0x98a100) > at yahoohook.cc:148 > #4 0x000000000052c40d in yahoohook::setautostatus (this=0x98a100, > st=available) at yahoohook.cc:455 > #5 0x0000000000514df2 in abstracthook::setstatus (this=0x98a100, > st=available) at abstracthook.cc:75 > #6 0x0000000000412d51 in centerim::changestatus (this=0x9876e0) > at centerim.cc:476 > #7 0x00000000004132c1 in centerim::mainloop (this=0x9876e0) > at centerim.cc:191 > #8 0x0000000000415bf6 in centerim::exec (this=0x9876e0) > at centerim.cc:106 > #9 0x00000000004b1f84 in main (argc=3, argv=0x7fff261172c8) > at centermain.cc:61 > (gdb) > > The check on "key" variable is for NULL to indicate the end of the > va_list as passed a few calls back. It seems the NULL isn't coming through > as a NULL. According to the man page: > > If there is no next argument, or if type is not compatible with the > type of the actual next argument (as promoted according to the > default argument promotions), random errors will occur. > > > On line 3416 of libyahoo2/libyahoo.c file > > return yahoo_init_with_attributes(username, password, NULL); > > Probably this NULL doesn't come through as an expected char * type in > _yahoo_assign_server_settings function. I believe that when NULL is > passed it is thought of as an int but we want a char * in later calls. > This would explain an amd64 error and not a i386 one if such was the > case. Also, this error was never there before but is now. I think this > might be becuase GCC is now version 4.2.2 whereas previously compiled > versions of centerim was with 4.2.1. (So va_arg handling has changed in > the newer gcc 4.2.2?) > > > To fix I simply replace that line > > return yahoo_init_with_attributes(username, password, (char *) NULL); > > > > Similarly in the file src/hooks/yahoohook.cc on line 146 > > cid = yahoo_init_with_attributes(acc.nickname.c_str(), > acc.password.c_str(), > "pager_host", acc.server.c_str(), > "pager_port", acc.port, NULL); > > Should be > > cid = yahoo_init_with_attributes(acc.nickname.c_str(), > acc.password.c_str(), > "pager_host", acc.server.c_str(), > "pager_port", acc.port, (char *) NULL); > > > I've attached patches. > > It all built fine here and works without crashes for me now. > > A good Friday night spent at the computer. :) > > Also perhaps this needs to be changed in the libyahoo2 sources also (and > upstream? if that could be forwarded on) > > > Thanks > > Chris Donoghue > > > > -- Anibal Avelar (FixXxeR) http://fixxxer.cc GPG: 83B64656 - C143 4AD8 B017 53FA B742 D6AA CEEA F9F3 83B6 4656 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]