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(