summaryrefslogtreecommitdiff
path: root/content/fetchers/resource.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2019-11-10 13:25:22 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2019-11-10 14:37:34 +0000
commit8d652f1ff453a1d87dfdec9c6c8dd077a707c613 (patch)
tree42e2b2a570bfb4e705b5b3b06cb2084c595f9c18 /content/fetchers/resource.c
parentb757f941070c1ed21acc388ff834b123e9c40595 (diff)
downloadnetsurf-8d652f1ff453a1d87dfdec9c6c8dd077a707c613.tar.gz
netsurf-8d652f1ff453a1d87dfdec9c6c8dd077a707c613.tar.bz2
Resource fetcher: Optimise HTTP header generation.
Diffstat (limited to 'content/fetchers/resource.c')
-rw-r--r--content/fetchers/resource.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/content/fetchers/resource.c b/content/fetchers/resource.c
index c7cf0224e..9b3f28ce5 100644
--- a/content/fetchers/resource.c
+++ b/content/fetchers/resource.c
@@ -122,19 +122,21 @@ static bool fetch_resource_send_header(struct fetch_resource_context *ctx,
fetch_msg msg;
char header[64];
va_list ap;
+ int len;
va_start(ap, fmt);
-
- vsnprintf(header, sizeof header, fmt, ap);
-
+ len = vsnprintf(header, sizeof header, fmt, ap);
va_end(ap);
+ if (len >= (int)sizeof(header) || len < 0) {
+ return false;
+ }
+
msg.type = FETCH_HEADER;
msg.data.header_or_data.buf = (const uint8_t *) header;
- msg.data.header_or_data.len = strlen(header);
- fetch_resource_send_callback(&msg, ctx);
+ msg.data.header_or_data.len = len;
- return ctx->aborted;
+ return fetch_resource_send_callback(&msg, ctx);
}