diff options
author | Reginald Kennedy <rk@rejii.com> | 2013-11-19 04:04:44 +0800 |
---|---|---|
committer | Reginald Kennedy <rk@rejii.com> | 2013-11-19 04:04:44 +0800 |
commit | dae0413909d08186e8cceb84a05cc9a5d53108eb (patch) | |
tree | 780bd5f19b94203f22c436994f14c4cf4e4fbef0 | |
parent | 141cc143bdaee811d5b797389168cdaecda134bb (diff) | |
download | xombrero-dae0413909d08186e8cceb84a05cc9a5d53108eb.tar.gz |
Fix segfault that can occur when referer = save-domain/save-fqdn.
-rw-r--r-- | xombrero.c | 11 |
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 " |