mirror of
https://github.com/nginx/nginx.git
synced 2025-06-12 21:52:41 +08:00
SSI: avoid potential buffer overflow.
When "-" follows a parameter of maximum length, a single byte buffer overflow happens, since the error branch does not check parameter length. Fix is to avoid saving "-" to the parameter key, and instead use an error message with "-" explicitly written. The message is mostly identical to one used in similar cases in the preequal state. Reported by Patrick Wollgast.
This commit is contained in:
parent
20c8c4fe35
commit
ad42d70fed
@ -1254,9 +1254,9 @@ ngx_http_ssi_parse(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx)
|
||||
case '-':
|
||||
state = ssi_error_end0_state;
|
||||
|
||||
ctx->param->key.data[ctx->param->key.len++] = ch;
|
||||
ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
|
||||
"invalid \"%V\" parameter in \"%V\" SSI command",
|
||||
"unexpected \"-\" symbol after \"%V\" "
|
||||
"parameter in \"%V\" SSI command",
|
||||
&ctx->param->key, &ctx->command);
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user