Time parsing cleanup.
Nuke NGX_PARSE_LARGE_TIME, it's not used since 0.6.30. The only error ngx_parse_time() can currently return is NGX_ERROR, check it explicitly and make sure to cast it to appropriate type (either time_t or ngx_msec_t) to avoid signedness warnings on platforms with unsigned time_t (notably QNX).
This commit is contained in:
parent
f92b0233ad
commit
05b47509df
11 changed files with 22 additions and 48 deletions
|
@ -1295,10 +1295,6 @@ ngx_conf_set_msec_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
return "invalid value";
|
return "invalid value";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*msp == (ngx_msec_t) NGX_PARSE_LARGE_TIME) {
|
|
||||||
return "value must be less than 597 hours";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cmd->post) {
|
if (cmd->post) {
|
||||||
post = cmd->post;
|
post = cmd->post;
|
||||||
return post->post_handler(cf, post, msp);
|
return post->post_handler(cf, post, msp);
|
||||||
|
@ -1326,14 +1322,10 @@ ngx_conf_set_sec_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
value = cf->args->elts;
|
value = cf->args->elts;
|
||||||
|
|
||||||
*sp = ngx_parse_time(&value[1], 1);
|
*sp = ngx_parse_time(&value[1], 1);
|
||||||
if (*sp == NGX_ERROR) {
|
if (*sp == (time_t) NGX_ERROR) {
|
||||||
return "invalid value";
|
return "invalid value";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*sp == NGX_PARSE_LARGE_TIME) {
|
|
||||||
return "value must be less than 68 years";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cmd->post) {
|
if (cmd->post) {
|
||||||
post = cmd->post;
|
post = cmd->post;
|
||||||
return post->post_handler(cf, post, sp);
|
return post->post_handler(cf, post, sp);
|
||||||
|
|
|
@ -13,9 +13,6 @@
|
||||||
#include <ngx_core.h>
|
#include <ngx_core.h>
|
||||||
|
|
||||||
|
|
||||||
#define NGX_PARSE_LARGE_TIME -2
|
|
||||||
|
|
||||||
|
|
||||||
ssize_t ngx_parse_size(ngx_str_t *line);
|
ssize_t ngx_parse_size(ngx_str_t *line);
|
||||||
off_t ngx_parse_offset(ngx_str_t *line);
|
off_t ngx_parse_offset(ngx_str_t *line);
|
||||||
ngx_int_t ngx_parse_time(ngx_str_t *line, ngx_uint_t is_sec);
|
ngx_int_t ngx_parse_time(ngx_str_t *line, ngx_uint_t is_sec);
|
||||||
|
|
|
@ -160,7 +160,7 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
|
||||||
|
|
||||||
r->valid = ngx_parse_time(&s, 1);
|
r->valid = ngx_parse_time(&s, 1);
|
||||||
|
|
||||||
if (r->valid == NGX_ERROR) {
|
if (r->valid == (time_t) NGX_ERROR) {
|
||||||
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||||
"invalid parameter: %V", &names[i]);
|
"invalid parameter: %V", &names[i]);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -530,7 +530,7 @@ ngx_http_headers_expires(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
|
|
||||||
hcf->expires_time = ngx_parse_time(&value[n], 1);
|
hcf->expires_time = ngx_parse_time(&value[n], 1);
|
||||||
|
|
||||||
if (hcf->expires_time == NGX_ERROR) {
|
if (hcf->expires_time == (time_t) NGX_ERROR) {
|
||||||
return "invalid value";
|
return "invalid value";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,10 +540,6 @@ ngx_http_headers_expires(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
return "daily time value must be less than 24 hours";
|
return "daily time value must be less than 24 hours";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hcf->expires_time == NGX_PARSE_LARGE_TIME) {
|
|
||||||
return "value must be less than 68 years";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (minus) {
|
if (minus) {
|
||||||
hcf->expires_time = - hcf->expires_time;
|
hcf->expires_time = - hcf->expires_time;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1249,7 +1249,7 @@ ngx_http_log_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.data = value[i].data + 9;
|
s.data = value[i].data + 9;
|
||||||
|
|
||||||
inactive = ngx_parse_time(&s, 1);
|
inactive = ngx_parse_time(&s, 1);
|
||||||
if (inactive < 0) {
|
if (inactive == (time_t) NGX_ERROR) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1272,7 +1272,7 @@ ngx_http_log_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.data = value[i].data + 6;
|
s.data = value[i].data + 6;
|
||||||
|
|
||||||
valid = ngx_parse_time(&s, 1);
|
valid = ngx_parse_time(&s, 1);
|
||||||
if (valid < 0) {
|
if (valid == (time_t) NGX_ERROR) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -774,14 +774,10 @@ ngx_http_userid_expires(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
}
|
}
|
||||||
|
|
||||||
ucf->expires = ngx_parse_time(&value[1], 1);
|
ucf->expires = ngx_parse_time(&value[1], 1);
|
||||||
if (ucf->expires == NGX_ERROR) {
|
if (ucf->expires == (time_t) NGX_ERROR) {
|
||||||
return "invalid value";
|
return "invalid value";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ucf->expires == NGX_PARSE_LARGE_TIME) {
|
|
||||||
return "value must be less than 68 years";
|
|
||||||
}
|
|
||||||
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -274,7 +274,7 @@ char *ngx_http_set_busy_lock_slot(ngx_conf_t *cf, ngx_command_t *cmd,
|
||||||
line.data = value[i].data + 2;
|
line.data = value[i].data + 2;
|
||||||
|
|
||||||
bl->timeout = ngx_parse_time(&line, 1);
|
bl->timeout = ngx_parse_time(&line, 1);
|
||||||
if (bl->timeout == NGX_ERROR) {
|
if (bl->timeout == (time_t) NGX_ERROR) {
|
||||||
invalid = 1;
|
invalid = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3853,7 +3853,7 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.len = p - s.data;
|
s.len = p - s.data;
|
||||||
|
|
||||||
lsopt.tcp_keepidle = ngx_parse_time(&s, 1);
|
lsopt.tcp_keepidle = ngx_parse_time(&s, 1);
|
||||||
if (lsopt.tcp_keepidle == NGX_ERROR) {
|
if (lsopt.tcp_keepidle == (time_t) NGX_ERROR) {
|
||||||
goto invalid_so_keepalive;
|
goto invalid_so_keepalive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3869,7 +3869,7 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.len = p - s.data;
|
s.len = p - s.data;
|
||||||
|
|
||||||
lsopt.tcp_keepintvl = ngx_parse_time(&s, 1);
|
lsopt.tcp_keepintvl = ngx_parse_time(&s, 1);
|
||||||
if (lsopt.tcp_keepintvl == NGX_ERROR) {
|
if (lsopt.tcp_keepintvl == (time_t) NGX_ERROR) {
|
||||||
goto invalid_so_keepalive;
|
goto invalid_so_keepalive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4516,7 +4516,7 @@ ngx_http_core_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.data = value[i].data + 9;
|
s.data = value[i].data + 9;
|
||||||
|
|
||||||
inactive = ngx_parse_time(&s, 1);
|
inactive = ngx_parse_time(&s, 1);
|
||||||
if (inactive < 0) {
|
if (inactive == (time_t) NGX_ERROR) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4603,24 +4603,16 @@ ngx_http_core_keepalive(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
return "invalid value";
|
return "invalid value";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clcf->keepalive_timeout == (ngx_msec_t) NGX_PARSE_LARGE_TIME) {
|
|
||||||
return "value must be less than 597 hours";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cf->args->nelts == 2) {
|
if (cf->args->nelts == 2) {
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
clcf->keepalive_header = ngx_parse_time(&value[2], 1);
|
clcf->keepalive_header = ngx_parse_time(&value[2], 1);
|
||||||
|
|
||||||
if (clcf->keepalive_header == NGX_ERROR) {
|
if (clcf->keepalive_header == (time_t) NGX_ERROR) {
|
||||||
return "invalid value";
|
return "invalid value";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clcf->keepalive_header == NGX_PARSE_LARGE_TIME) {
|
|
||||||
return "value must be less than 68 years";
|
|
||||||
}
|
|
||||||
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1597,7 +1597,8 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
time_t inactive;
|
time_t inactive;
|
||||||
ssize_t size;
|
ssize_t size;
|
||||||
ngx_str_t s, name, *value;
|
ngx_str_t s, name, *value;
|
||||||
ngx_int_t loader_files, loader_sleep, loader_threshold;
|
ngx_int_t loader_files;
|
||||||
|
ngx_msec_t loader_sleep, loader_threshold;
|
||||||
ngx_uint_t i, n;
|
ngx_uint_t i, n;
|
||||||
ngx_http_file_cache_t *cache;
|
ngx_http_file_cache_t *cache;
|
||||||
|
|
||||||
|
@ -1704,7 +1705,7 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.data = value[i].data + 9;
|
s.data = value[i].data + 9;
|
||||||
|
|
||||||
inactive = ngx_parse_time(&s, 1);
|
inactive = ngx_parse_time(&s, 1);
|
||||||
if (inactive < 0) {
|
if (inactive == (time_t) NGX_ERROR) {
|
||||||
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||||
"invalid inactive value \"%V\"", &value[i]);
|
"invalid inactive value \"%V\"", &value[i]);
|
||||||
return NGX_CONF_ERROR;
|
return NGX_CONF_ERROR;
|
||||||
|
@ -1746,7 +1747,7 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.data = value[i].data + 13;
|
s.data = value[i].data + 13;
|
||||||
|
|
||||||
loader_sleep = ngx_parse_time(&s, 0);
|
loader_sleep = ngx_parse_time(&s, 0);
|
||||||
if (loader_sleep < 0) {
|
if (loader_sleep == (ngx_msec_t) NGX_ERROR) {
|
||||||
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||||
"invalid loader_sleep value \"%V\"", &value[i]);
|
"invalid loader_sleep value \"%V\"", &value[i]);
|
||||||
return NGX_CONF_ERROR;
|
return NGX_CONF_ERROR;
|
||||||
|
@ -1761,7 +1762,7 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.data = value[i].data + 17;
|
s.data = value[i].data + 17;
|
||||||
|
|
||||||
loader_threshold = ngx_parse_time(&s, 0);
|
loader_threshold = ngx_parse_time(&s, 0);
|
||||||
if (loader_threshold < 0) {
|
if (loader_threshold == (ngx_msec_t) NGX_ERROR) {
|
||||||
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||||
"invalid loader_threshold value \"%V\"", &value[i]);
|
"invalid loader_threshold value \"%V\"", &value[i]);
|
||||||
return NGX_CONF_ERROR;
|
return NGX_CONF_ERROR;
|
||||||
|
@ -1788,8 +1789,8 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
cache->path->conf_file = cf->conf_file->file.name.data;
|
cache->path->conf_file = cf->conf_file->file.name.data;
|
||||||
cache->path->line = cf->conf_file->line;
|
cache->path->line = cf->conf_file->line;
|
||||||
cache->loader_files = loader_files;
|
cache->loader_files = loader_files;
|
||||||
cache->loader_sleep = (ngx_msec_t) loader_sleep;
|
cache->loader_sleep = loader_sleep;
|
||||||
cache->loader_threshold = (ngx_msec_t) loader_threshold;
|
cache->loader_threshold = loader_threshold;
|
||||||
|
|
||||||
if (ngx_add_path(cf, &cache->path) != NGX_OK) {
|
if (ngx_add_path(cf, &cache->path) != NGX_OK) {
|
||||||
return NGX_CONF_ERROR;
|
return NGX_CONF_ERROR;
|
||||||
|
@ -1843,7 +1844,7 @@ ngx_http_file_cache_valid_set_slot(ngx_conf_t *cf, ngx_command_t *cmd,
|
||||||
n = cf->args->nelts - 1;
|
n = cf->args->nelts - 1;
|
||||||
|
|
||||||
valid = ngx_parse_time(&value[n], 1);
|
valid = ngx_parse_time(&value[n], 1);
|
||||||
if (valid < 0) {
|
if (valid == (time_t) NGX_ERROR) {
|
||||||
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||||
"invalid time value \"%V\"", &value[n]);
|
"invalid time value \"%V\"", &value[n]);
|
||||||
return NGX_CONF_ERROR;
|
return NGX_CONF_ERROR;
|
||||||
|
|
|
@ -4268,7 +4268,7 @@ ngx_http_upstream_server(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
|
|
||||||
fail_timeout = ngx_parse_time(&s, 1);
|
fail_timeout = ngx_parse_time(&s, 1);
|
||||||
|
|
||||||
if (fail_timeout == NGX_ERROR) {
|
if (fail_timeout == (time_t) NGX_ERROR) {
|
||||||
goto invalid;
|
goto invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -479,7 +479,7 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.len = p - s.data;
|
s.len = p - s.data;
|
||||||
|
|
||||||
ls->tcp_keepidle = ngx_parse_time(&s, 1);
|
ls->tcp_keepidle = ngx_parse_time(&s, 1);
|
||||||
if (ls->tcp_keepidle == NGX_ERROR) {
|
if (ls->tcp_keepidle == (time_t) NGX_ERROR) {
|
||||||
goto invalid_so_keepalive;
|
goto invalid_so_keepalive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -495,7 +495,7 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||||
s.len = p - s.data;
|
s.len = p - s.data;
|
||||||
|
|
||||||
ls->tcp_keepintvl = ngx_parse_time(&s, 1);
|
ls->tcp_keepintvl = ngx_parse_time(&s, 1);
|
||||||
if (ls->tcp_keepintvl == NGX_ERROR) {
|
if (ls->tcp_keepintvl == (time_t) NGX_ERROR) {
|
||||||
goto invalid_so_keepalive;
|
goto invalid_so_keepalive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue