diff options
author | Vincent Sanders <vince@kyllikki.org> | 2019-06-10 20:51:31 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2019-06-10 20:53:12 +0100 |
commit | e598dcd139d8221f828d542ccf6f03466a5aecdc (patch) | |
tree | b15d6e1e1ac371fcbd00de05b96ba75695fbedb6 /content | |
parent | 24590a1145f3d9e6a2842d51b426157da653be5d (diff) | |
download | netsurf-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.c | 10 |
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); + } } |