mirror of
https://github.com/nginx/nginx.git
synced 2026-10-24 22:57:43 -05:00
Xslt: fix handling of vsnprintf() return value
This commit is contained in:
1 parent
915bc034e3
commit
5b7f946a40
1 file changed
+13
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user