Skip to content

Commit

Permalink
Detect runaway chunks in ngx_http_parse_chunked().
Browse files Browse the repository at this point in the history
As defined in HTTP/1.1, body chunks have the following ABNF:

   chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF

where chunk-data is a sequence of chunk-size octets.

With this change, chunk-data that doesn't end up with CRLF at chunk-size
offset will be treated as invalid, such as in the example provided below:

4
SEE-THIS-AND-
4
THAT
0
  • Loading branch information
pluknet committed Sep 3, 2019
1 parent 9cb22ef commit 77c01f1
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/http/ngx_http_parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -2268,6 +2268,9 @@ ngx_http_parse_chunked(ngx_http_request_t *r, ngx_buf_t *b,
break;
case LF:
state = sw_chunk_start;
break;
default:
goto invalid;
}
break;

Expand Down

0 comments on commit 77c01f1

Please sign in to comment.