header value null termination?

Steven Hartland steven.hartland at multiplay.co.uk
Thu Aug 21 23:30:22 UTC 2014


I'm creating a module in which I needed to set some
of the standard headers e.g. Content-Range and Range.

Looking through the core source code the standard way
to do this seems to be something like this:-

r->headers_in.range->value.len =
    ngx_sprintf(r->headers_in.range->value.data,
        "bytes %O-%O/%O",
        range->start, range->end - 1,
        r->headers_out.content_length_n)
        - r->headers_in.range->value.data;

This appears to write a string to value.data which
is not \0 terminated hence when interacting with
functions such as ngx_http_range_parse unpredictable
behaviour follows as it expects the range header to
be null terminated.

So the question is:-

Should header values be null terminated or should
functions such as ngx_http_range_parse be updated
to deal with non-null terminated strings?

    Regards
    Steve



More information about the nginx-devel mailing list