mirror of
https://github.com/nginx/nginx.git
synced 2026-08-27 04:07:18 +00:00
Xslt: fix handling of vsnprintf() return value
This commit is contained in:
parent
1c387799ca
commit
ac4bedfafe
1 changed files with 13 additions and 3 deletions
|
|
@ -465,7 +465,7 @@ ngx_http_xslt_sax_error(void *data, const char *msg, ...)
|
|||
{
|
||||
xmlParserCtxtPtr ctxt = data;
|
||||
|
||||
size_t n;
|
||||
int n;
|
||||
va_list args;
|
||||
ngx_http_xslt_filter_ctx_t *ctx;
|
||||
u_char buf[NGX_MAX_ERROR_STR];
|
||||
|
|
@ -475,13 +475,23 @@ ngx_http_xslt_sax_error(void *data, const char *msg, ...)
|
|||
buf[0] = '\0';
|
||||
|
||||
va_start(args, msg);
|
||||
n = (size_t) vsnprintf((char *) buf, NGX_MAX_ERROR_STR, msg, args);
|
||||
n = vsnprintf((char *) buf, NGX_MAX_ERROR_STR, msg, args);
|
||||
va_end(args);
|
||||
|
||||
if (n <= 0) {
|
||||
ngx_log_error(NGX_LOG_ERR, ctx->request->connection->log, ngx_errno,
|
||||
"libxml2 error");
|
||||
return;
|
||||
}
|
||||
|
||||
if (n > NGX_MAX_ERROR_STR) {
|
||||
n = NGX_MAX_ERROR_STR;
|
||||
}
|
||||
|
||||
while (--n && (buf[n] == CR || buf[n] == LF)) { /* void */ }
|
||||
|
||||
ngx_log_error(NGX_LOG_ERR, ctx->request->connection->log, 0,
|
||||
"libxml2 error: \"%*s\"", n + 1, buf);
|
||||
"libxml2 error: \"%*s\"", (size_t) (n + 1), buf);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue