Sending a buddy request in ICQ fails when using libpurple
Mark Doliner
mark at kingant.net
Thu Aug 6 02:15:13 EDT 2009
On Wed, Aug 5, 2009 at 8:29 PM,
michaelcbrook at msn.com<michaelcbrook at msn.com> wrote:
> Adding the timeout did not work. I'm fairly new to backtracing, but I
> followed the directions from the pidgin wiki and here's what I got:
>
> *When the segfault occurred while running:
>
> Adding buddy...
> (20:08:00) oscar: ssi: adding buddy 401787217 to group Buddies
> (20:08:00) oscar: Requesting ICQ alias for 401787217(20:08:00) oscar:
> icq response: 60 bytes, 579746952, 0x07da, 0x0024
> (20:08:00) oscar: ssi: status is 0x000e for a 0x0008 action with name no
> item
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0xb79318d0 (LWP 25796)]
> purple_auth_request (data=0xb7eceff4, msg=0x8791008 "") at oscar.c:2533
> 2533 od = gc->proto_data;
>
> *The backtrace:
>
> #0 purple_auth_request (data=0xb7eceff4, msg=0x8791008 "") at
> oscar.c:2533
> gc = (PurpleConnection *) 0xb6ebc
> account = (PurpleAccount *) 0xbfc027a8
> buddy = <value optimized out>
> group = <value optimized out>
> #1 0x08048fce in request_input_cb ()
> No locals.
> #2 0xb7e522b6 in ?? () from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #3 0xb7e51b88 in g_main_context_dispatch ()
> from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #4 0xb7e550eb in ?? () from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #5 0xb7e555ba in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #6 0x080491e0 in main ()
> No locals.
>
> I also attached the full source code of the program, as simplified as
> possible (the only difference is that my password is replaced with
> "PASSWORD"). I compile it with:
>
> gcc `pkg-config --libs glib-2.0` -I /usr/include/libpurple/
> -I /usr/include/glib-2.0/ -I /usr/lib/glib-2.0/include/ test.c -lpurple
> -o test
>
> ...if that makes any difference
>
> Let me know if you need any more information.
I think you may need to pass parameters to the callback functions.
The user_data variable passed to your request_input function and the
message text. See the bottom half of input_response_cb() in
pidgin/gtkresponse.c for an example. Specifically:
((PurpleRequestInputCb)data->cbs[id])(data->user_data, value);
-Mark
More information about the Support
mailing list