[Pidgin] #10393: Crash when adding a MSN buddy
Pidgin
trac at pidgin.im
Mon Sep 28 12:51:20 EDT 2009
#10393: Crash when adding a MSN buddy
--------------------+-------------------------------------------------------
Reporter: romain | Owner: khc
Type: defect | Status: new
Component: MSN | Version: 2.6.2
Keywords: |
--------------------+-------------------------------------------------------
On pidgin 2.6.2,
* I add a new unexistant buddy on my MSN account.
* Pidgin shows a popup to ask me a “Authorization Request Message”.
* Without closing it, I go on buddy list, and change the new buddy's
alias.
--> *crash*
Backtrace:
{{{
#0 msn_update_contact (session=0xd3a430,
passport=0xac1440 "anus at fertile.com",
type=<value optimized out>,
value=<value optimized out>)
at /usr/src/debian/work/build-
area/pidgin-2.6.2/./libpurple/protocols/msn/contact.c:1474
#1 0x0000000000447ef5 in gtk_blist_renderer_edited_cb (text_rend=<value
optimized out>,
arg1=<value optimized out>,
arg2=0x12b8340 "ui", list=0x7f6300)
at /usr/src/debian/work/build-
area/pidgin-2.6.2/./pidgin/gtkblist.c:640
#2 0x00007ffff54cc10d in IA__g_closure_invoke (
closure=0xb71c50, return_value=0x0,
n_param_values=3, param_values=0xb372d0,
invocation_hint=0x7fffffffb3f0)
at /tmp/buildd/glib2.0-2.20.5/gobject/gclosure.c:767
#3 0x00007ffff54df8bb in signal_emit_unlocked_R
(node=0xb71bf0, detail=0, instance=0x93a9c0,
emission_return=0x0,
instance_and_params=0xb372d0)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:3247
#4 0x00007ffff54e0c62 in IA__g_signal_emit_valist (instance=0x93a9c0,
signal_id=<value optimized out>, detail=0,
var_args=0x7fffffffb5d0)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:2980
#5 0x00007ffff54e1133 in IA__g_signal_emit (
instance=0x12bb100, signal_id=19640784,
detail=4128595240)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:3037
#6 0x00007ffff54cc10d in IA__g_closure_invoke (
closure=0x12a9bd0, return_value=0x0,
n_param_values=1, param_values=0xa97820,
invocation_hint=0x7fffffffb7f0)
at /tmp/buildd/glib2.0-2.20.5/gobject/gclosure.c:767
#7 0x00007ffff54df8bb in signal_emit_unlocked_R
(node=0x124a070, detail=0,
instance=0xa2a3d0, emission_return=0x0,
instance_and_params=0xa97820)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:3247
#8 0x00007ffff54e0c62 in IA__g_signal_emit_valist (instance=0xa2a3d0,
signal_id=<value optimized out>, detail=0,
var_args=0x7fffffffba00)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:2980
#9 0x00007ffff54e0f9a in IA__g_signal_emit_by_name (instance=0xa2a3d0,
detailed_signal=0x7ffff6d3aeb6 "editing-done") at
/tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:3074
#10 0x00007ffff6b43159 in ?? ()
from /usr/lib/libgtk-x11-2.0.so.0
#11 0x00007ffff54cc10d in IA__g_closure_invoke (
closure=0xb38390,
return_value=0x7fffffffbde0,
n_param_values=1, param_values=0x12b8110,
invocation_hint=0x7fffffffbc60)
at /tmp/buildd/glib2.0-2.20.5/gobject/gclosure.c:767
#12 0x00007ffff54df8bb in signal_emit_unlocked_R
(node=0x12a22d0, detail=0,
instance=0xa2a3d0,
emission_return=0x7fffffffbde0,
instance_and_params=0x12b8110)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:3247
#13 0x00007ffff6b023fc in ?? ()
from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007ffff6b028d1 in ?? ()
from /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007ffff6b02b4a in ?? ()
from /usr/lib/libgtk-x11-2.0.so.0
#16 0x00007ffff6b02ee5 in gtk_bindings_activate
() from /usr/lib/libgtk-x11-2.0.so.0
#17 0x000000000044abbf in gtk_blist_window_key_press_cb (w=<value
optimized out>,
event=<value optimized out>,
gtkblist=<value optimized out>)
at /usr/src/debian/work/build-
area/pidgin-2.6.2/./pidgin/gtkblist.c:4790
#18 0x00007ffff6bb7098 in ?? ()
from /usr/lib/libgtk-x11-2.0.so.0
#19 0x00007ffff54cc10d in IA__g_closure_invoke (
closure=0xaa5ae0,
return_value=0x7fffffffc100,
n_param_values=2, param_values=0x129d4a0,
invocation_hint=0x7fffffffc0c0)
at /tmp/buildd/glib2.0-2.20.5/gobject/gclosure.c:767
#20 0x00007ffff54df8bb in signal_emit_unlocked_R
(node=0x7f4880, detail=0, instance=0x8007c0,
emission_return=0x7fffffffc240,
instance_and_params=0x129d4a0)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:3247
#21 0x00007ffff54e0af8 in IA__g_signal_emit_valist (instance=0x8007c0,
signal_id=<value optimized out>, detail=0,
var_args=0x7fffffffc2a0)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:2990
#22 0x00007ffff54e1133 in IA__g_signal_emit (
instance=0x12bb100, signal_id=19640784,
detail=4128595240)
at /tmp/buildd/glib2.0-2.20.5/gobject/gsignal.c:3037
#23 0x00007ffff6cbca8e in ?? ()
from /usr/lib/libgtk-x11-2.0.so.0
#24 0x00007ffff6bafaa2 in gtk_propagate_event ()
from /usr/lib/libgtk-x11-2.0.so.0
#25 0x00007ffff6bb0a8b in gtk_main_do_event ()
from /usr/lib/libgtk-x11-2.0.so.0
#26 0x00007ffff682d47c in ?? ()
from /usr/lib/libgdk-x11-2.0.so.0
#27 0x00007ffff503186a in g_main_dispatch (
context=0x723600)
at /tmp/buildd/glib2.0-2.20.5/glib/gmain.c:1824
#28 IA__g_main_context_dispatch (
context=0x723600)
at /tmp/buildd/glib2.0-2.20.5/glib/gmain.c:2377
#29 0x00007ffff5034eb8 in g_main_context_iterate
(context=0x723600, block=1, dispatch=1,
self=<value optimized out>)
at /tmp/buildd/glib2.0-2.20.5/glib/gmain.c:2455
#30 0x00007ffff503538d in IA__g_main_loop_run (
loop=0x11e0380)
at /tmp/buildd/glib2.0-2.20.5/glib/gmain.c:2663
#31 0x00007ffff6bb0e87 in gtk_main ()
from /usr/lib/libgtk-x11-2.0.so.0
#32 0x0000000000485320 in main (argc=3,
argv=0x7fffffffe9c8)
at /usr/src/debian/work/build-area/pidgin-2.6.2/./pidgin/gtkmain.c:916
}}}
It happens on this code (in msn_update_contact):
{{{
MsnUser *user = msn_userlist_find_user(session->userlist, passport);
xmlnode *contactId = xmlnode_new_child(contact, "contactId");
msn_callback_state_set_uid(state, user->uid);
}}}
There is no check if user exists, and on the third line it crashes.
As it happens only if buddy doesn't exist on server, a good solution is to
return without doing anything.
On Pidgin, it isn't a big issue, but on the libpurple's minbif client, it
crashes everytimes an unexistant MSN buddy is added.
--
Ticket URL: <http://developer.pidgin.im/ticket/10393>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list