about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorReginald Kennedy <rk@rejii.com>2013-11-19 04:04:44 +0800
committerReginald Kennedy <rk@rejii.com>2013-11-19 04:04:44 +0800
commitdae0413909d08186e8cceb84a05cc9a5d53108eb (patch)
tree780bd5f19b94203f22c436994f14c4cf4e4fbef0
parent141cc143bdaee811d5b797389168cdaecda134bb (diff)
downloadxombrero-dae0413909d08186e8cceb84a05cc9a5d53108eb.tar.gz
Fix segfault that can occur when referer = save-domain/save-fqdn.
-rw-r--r--xombrero.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/xombrero.c b/xombrero.c
index ba47aac..58411e7 100644
--- a/xombrero.c
+++ b/xombrero.c
@@ -4769,10 +4769,13 @@ session_rq_cb(SoupSession *s, SoupMessage *msg, SoupSocket *socket,
 			ref_uri = soup_uri_new(ref);
 			dest = soup_message_get_uri(msg);
 
+			if (ref_uri == NULL || dest == NULL)
+				return;
+
 			ref_suffix = tld_get_suffix(ref_uri->host);
 			dest_suffix = tld_get_suffix(dest->host);
 
-			if (dest && ref_suffix && dest_suffix &&
+			if (ref_suffix && dest_suffix &&
 			    strcmp(ref_suffix, dest_suffix) != 0) {
 				soup_message_headers_remove(msg->request_headers,
 				    "Referer");
@@ -4785,7 +4788,11 @@ session_rq_cb(SoupSession *s, SoupMessage *msg, SoupSocket *socket,
 		case XT_REFERER_SAME_FQDN:
 			ref_uri = soup_uri_new(ref);
 			dest = soup_message_get_uri(msg);
-			if (dest && strcmp(ref_uri->host, dest->host) != 0) {
+
+			if (ref_uri == NULL || dest == NULL)
+				return;
+
+			if (strcmp(ref_uri->host, dest->host) != 0) {
 				soup_message_headers_remove(msg->request_headers,
 				    "Referer");
 				DNPRINTF(XT_D_NAV, "session_rq_cb: removing "