Rejecting requests with duplicate "Content-Length".

This commit is contained in:
Valentin Bartenev
2019-02-18 16:51:30 +03:00
parent 1ba49d9250
commit 2a6b54c230
2 changed files with 8 additions and 6 deletions

View File

@@ -83,13 +83,16 @@ nxt_http_request_content_length(void *ctx, nxt_http_field_t *field,
nxt_http_request_t *r; nxt_http_request_t *r;
r = ctx; r = ctx;
r->content_length = field;
n = nxt_off_t_parse(field->value, field->value_length); if (nxt_fast_path(r->content_length == NULL)) {
r->content_length = field;
if (nxt_fast_path(n >= 0)) { n = nxt_off_t_parse(field->value, field->value_length);
r->content_length_n = n;
return NXT_OK; if (nxt_fast_path(n >= 0)) {
r->content_length_n = n;
return NXT_OK;
}
} }
return NXT_ERROR; return NXT_ERROR;

View File

@@ -198,7 +198,6 @@ a
'Host': 'localhost' 'Host': 'localhost'
}, body='X' * 1000)['status'], 400, 'Content-Length multiple value') }, body='X' * 1000)['status'], 400, 'Content-Length multiple value')
@unittest.expectedFailure
def test_http_header_content_length_multiple_fields(self): def test_http_header_content_length_multiple_fields(self):
self.load('empty') self.load('empty')