File fetcher: Avoid atoi for If-None-Match value parse.

The file fetcher emits FETCH_NOTMODIFIED if the file is unchanged.
This commit is contained in:
Michael Drake 2019-11-09 17:06:04 +00:00
parent c92b31babe
commit b15cbb72ac

View File

@ -50,6 +50,8 @@
#include "utils/corestrings.h"
#include "utils/messages.h"
#include "utils/utils.h"
#include "utils/log.h"
#include "utils/time.h"
#include "utils/ring.h"
#include "utils/file.h"
#include "netsurf/fetch.h"
@ -157,7 +159,10 @@ fetch_file_setup(struct fetch *fetchh,
/* Scan request headers looking for If-None-Match */
for (i = 0; headers[i] != NULL; i++) {
if (strncasecmp(headers[i], "If-None-Match:",
SLEN("If-None-Match:")) == 0) {
SLEN("If-None-Match:")) != 0) {
continue;
}
/* If-None-Match: "12345678" */
const char *d = headers[i] + SLEN("If-None-Match:");
@ -166,8 +171,12 @@ fetch_file_setup(struct fetch *fetchh,
d++;
/* Convert to time_t */
if (*d != '\0')
ctx->file_etag = atoi(d);
if (*d != '\0') {
ret = nsc_snptimet(d, strlen(d), &ctx->file_etag);
if (ret != NSERROR_OK) {
NSLOG(fetch, WARNING,
"Bad If-None-Match value");
}
}
}