Mercurial > pidgin
changeset 13419:3e9c865abd3f
[gaim-migrate @ 15794]
Resolve CID 22:
Event assign_zero: Variable "prpl_info" assigned value 0.
3764 GaimPluginProtocolInfo *prpl_info = NULL;
3795 if (gc != NULL)
3796 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
Event var_deref_op: Variable "prpl_info" tracked as NULL was dereferenced.
3798 if (prpl_info->options & OPT_PROTO_CHAT_TOPIC)
Basically, if gc == NULL, then prpl_info == NULL, so this crashes.
Let's be safe and use a g_return_if_fail(). I also added one to the write_conv stuff I changed in my last commit. We seem to do that in a lot of places, so I guess I'll p
lay it safe.
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Tue, 07 Mar 2006 02:09:05 +0000 |
parents | ad33debf87b4 |
children | d6530e0cd89f |
files | src/gtkconv.c |
diffstat | 1 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gtkconv.c Tue Mar 07 01:58:34 2006 +0000 +++ b/src/gtkconv.c Tue Mar 07 02:09:05 2006 +0000 @@ -3762,7 +3762,7 @@ static GtkWidget * setup_chat_pane(GaimGtkConversation *gtkconv) { - GaimPluginProtocolInfo *prpl_info = NULL; + GaimPluginProtocolInfo *prpl_info; GaimConversation *conv = gtkconv->active_conv; GaimGtkChatPane *gtkchat; GaimConnection *gc; @@ -3783,6 +3783,9 @@ gtkchat = gtkconv->u.chat; gc = gaim_conversation_get_gc(conv); + g_return_if_fail(gc != NULL); + g_return_if_fail(gc->prpl != NULL); + prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); /* Setup the outer pane. */ vpaned = gtk_vpaned_new(); @@ -3793,9 +3796,6 @@ gtk_paned_pack1(GTK_PANED(vpaned), vbox, TRUE, TRUE); gtk_widget_show(vbox); - if (gc != NULL) - prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); - if (prpl_info->options & OPT_PROTO_CHAT_TOPIC) { hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); @@ -4607,8 +4607,10 @@ gaim_gtkconv_set_active_conversation(conv); type = gaim_conversation_get_type(conv); - gc = gaim_conversation_get_gc(conv); account = gaim_conversation_get_account(conv); + g_return_if_fail(account != NULL); + gc = gaim_account_get_connection(account); + g_return_if_fail(gc != NULL); displaying = g_strdup(message); plugin_return = GPOINTER_TO_INT(gaim_signal_emit_return_1(