# HG changeset patch # User Richard Laager # Date 1141697345 0 # Node ID 3e9c865abd3f814ac167afceef6f8a6dbb76d9c9 # Parent ad33debf87b496bf57c570a0853be2eeb31886de [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 diff -r ad33debf87b4 -r 3e9c865abd3f src/gtkconv.c --- 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(