aim_locate_finduserinfo() can return NUL (particularly if userinfo->sn is NULL), which leads to the crash in AdiumTicket:7346. Handle this possibility rather than crashing.

Mon, 16 Jul 2007 21:11:45 +0000

author
Evan Schoenberg <evands@pidgin.im>
date
Mon, 16 Jul 2007 21:11:45 +0000
changeset 18807
b0407f65aecf
parent 18806
c1a6900de762
child 18808
894912f850f6
child 20549
5da3806e7541

aim_locate_finduserinfo() can return NUL (particularly if userinfo->sn is NULL), which leads to the crash in AdiumTicket:7346. Handle this possibility rather than crashing.

libpurple/protocols/oscar/family_locate.c file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/oscar/family_locate.c	Mon Jul 16 21:11:23 2007 +0000
+++ b/libpurple/protocols/oscar/family_locate.c	Mon Jul 16 21:11:45 2007 +0000
@@ -1264,10 +1264,13 @@
 	 * this buddy's info explicitly, then notify them that we have info
 	 * for this buddy.
 	 */
-	was_explicit = aim_locate_gotuserinfo(od, conn, userinfo2->sn);
-	if (was_explicit == TRUE)
-		if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-			ret = userfunc(od, conn, frame, userinfo2);
+	if (userinfo2 != NULL)
+	{
+		was_explicit = aim_locate_gotuserinfo(od, conn, userinfo2->sn);
+		if (was_explicit == TRUE)
+			if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
+				ret = userfunc(od, conn, frame, userinfo2);
+	}
 
 	return ret;
 }

mercurial