changeset 6223:d1f94042c29c

Stream: fixed potential error log buffer overrun. Found by Duan Jiong <djduanjiong@gmail.com>.
author Vladimir Homutov <vl@nginx.com>
date Thu, 13 Aug 2015 15:55:21 +0300
parents 1bd5eb20bd7c
children ddf35e019a80
files src/stream/ngx_stream_handler.c
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/stream/ngx_stream_handler.c
+++ b/src/stream/ngx_stream_handler.c
@@ -328,9 +328,11 @@ ngx_stream_log_error(ngx_log_t *log, u_c
     p = ngx_snprintf(buf, len, ", client: %V, server: %V",
                      &s->connection->addr_text,
                      &s->connection->listening->addr_text);
+    len -= p - buf;
+    buf = p;
 
     if (s->log_handler) {
-        return s->log_handler(log, p, len);
+        p = s->log_handler(log, buf, len);
     }
 
     return p;