diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2019-11-10 13:25:22 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2019-11-10 14:37:34 +0000 |
commit | 8d652f1ff453a1d87dfdec9c6c8dd077a707c613 (patch) | |
tree | 42e2b2a570bfb4e705b5b3b06cb2084c595f9c18 | |
parent | b757f941070c1ed21acc388ff834b123e9c40595 (diff) | |
download | netsurf-8d652f1ff453a1d87dfdec9c6c8dd077a707c613.tar.gz netsurf-8d652f1ff453a1d87dfdec9c6c8dd077a707c613.tar.bz2 |
Resource fetcher: Optimise HTTP header generation.
-rw-r--r-- | content/fetchers/resource.c | 14 |
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); } |