summaryrefslogtreecommitdiff
path: root/src/cache.c
diff options
context:
space:
mode:
authorcorvid <devnull@localhost>2014-12-24 20:34:41 +0000
committercorvid <devnull@localhost>2014-12-24 20:34:41 +0000
commitc3437f496d24fe8c2ad674c83ade927cbdc075c4 (patch)
tree3fe822b1292346018f0b009d4baed76e9bc90c58 /src/cache.c
parent38eb3d87a6c0a15fc28dc694c245de27ad933367 (diff)
parent8685e116bdbe7b92c5fdcf685c14cfb976334637 (diff)
merge 3.0.4.1 branch
Diffstat (limited to 'src/cache.c')
-rw-r--r--src/cache.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/cache.c b/src/cache.c
index ee424c58..189e18d5 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -1001,14 +1001,20 @@ static int Cache_redirect(CacheEntry_t *entry, int Flags, BrowserWindow *bw)
_MSG(" Cache_redirect: redirect_level = %d\n", bw->redirect_level);
+ /* Don't allow redirection for SpamSafe/local URLs */
+ if (URL_FLAGS(entry->Url) & URL_SpamSafe) {
+ a_UIcmd_set_msg(bw, "WARNING: local URL with redirection. Aborting.");
+ return 0;
+ }
+
/* if there's a redirect loop, stop now */
if (bw->redirect_level >= 5)
entry->Flags |= CA_RedirectLoop;
if (entry->Flags & CA_RedirectLoop) {
- a_UIcmd_set_msg(bw, "ERROR: redirect loop for: %s", URL_STR_(entry->Url));
- bw->redirect_level = 0;
- return 0;
+ a_UIcmd_set_msg(bw, "ERROR: redirect loop for: %s", URL_STR_(entry->Url));
+ bw->redirect_level = 0;
+ return 0;
}
if ((entry->Flags & CA_Redirect && entry->Location) &&