summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2019-06-10 20:51:31 +0100
committerVincent Sanders <vince@kyllikki.org>2019-06-10 20:53:12 +0100
commite598dcd139d8221f828d542ccf6f03466a5aecdc (patch)
treeb15d6e1e1ac371fcbd00de05b96ba75695fbedb6 /content
parent24590a1145f3d9e6a2842d51b426157da653be5d (diff)
downloadnetsurf-e598dcd139d8221f828d542ccf6f03466a5aecdc.tar.gz
netsurf-e598dcd139d8221f828d542ccf6f03466a5aecdc.tar.bz2
fix parsing of invalid syntax max-age value Cache-control header
Diffstat (limited to 'content')
-rw-r--r--content/llcache.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/content/llcache.c b/content/llcache.c
index 5aa8a9a29..c804b73a0 100644
--- a/content/llcache.c
+++ b/content/llcache.c
@@ -601,13 +601,18 @@ llcache_fetch_parse_cache_control(llcache_object *object, char *value)
object->cache.no_cache = LLCACHE_VALIDATE_ALWAYS;
} else if ((7 < comma - start) &&
strncasecmp(start, "max-age", 7) == 0) {
+ start += 7; /* skip max-age */
+
/* Find '=' */
while (start < comma && *start != '=') {
start++;
}
- /* Skip over it */
- start++;
+ if (start < comma) {
+ /* Skip over '=' */
+ start++;
+ }
+
#define SKIP_ST(p) while (*p != '\0' && (*p == ' ' || *p == '\t')) p++
@@ -616,6 +621,7 @@ llcache_fetch_parse_cache_control(llcache_object *object, char *value)
if (start < comma) {
object->cache.max_age = atoi(start);
+
}
}