libpurple/protocols/msn/soap.c

branch
release-2.x.y
changeset 35203
68d6df7dc69c
parent 33809
d5e9c888ccd7
child 35265
77664079d0f0
--- a/libpurple/protocols/msn/soap.c	Sat Mar 16 14:17:45 2013 -0400
+++ b/libpurple/protocols/msn/soap.c	Sat Mar 16 14:17:45 2013 -0400
@@ -304,21 +304,25 @@
 		if (faultcode != NULL) {
 			char *faultdata = xmlnode_get_data(faultcode);
 
-			if (g_str_equal(faultdata, "psf:Redirect")) {
+			if (faultdata && g_str_equal(faultdata, "psf:Redirect")) {
 				xmlnode *url = xmlnode_get_child(fault, "redirectUrl");
 
 				if (url) {
 					char *urldata = xmlnode_get_data(url);
-					msn_soap_handle_redirect(conn, urldata);
+					if (urldata)
+						msn_soap_handle_redirect(conn, urldata);
 					g_free(urldata);
 				}
 
 				g_free(faultdata);
 				msn_soap_message_destroy(response);
 				return TRUE;
-			} else if (g_str_equal(faultdata, "wsse:FailedAuthentication")) {
+			} else if (faultdata && g_str_equal(faultdata, "wsse:FailedAuthentication")) {
 				xmlnode *reason = xmlnode_get_child(fault, "faultstring");
-				char *reasondata = xmlnode_get_data(reason);
+				char *reasondata = NULL;
+
+				if (reason)
+					reasondata = xmlnode_get_data(reason);
 
 				msn_soap_connection_sanitize(conn, TRUE);
 				msn_session_set_error(conn->session, MSN_ERROR_AUTH,

mercurial