]> git.kaiwu.me - nginx.git/commitdiff
Stream: fixed potential error log buffer overrun.
authorVladimir Homutov <vl@nginx.com>
Thu, 13 Aug 2015 12:55:21 +0000 (15:55 +0300)
committerVladimir Homutov <vl@nginx.com>
Thu, 13 Aug 2015 12:55:21 +0000 (15:55 +0300)
Found by Duan Jiong <djduanjiong@gmail.com>.

src/stream/ngx_stream_handler.c

index 24afbcd359b9bb1e38a367328bf299bd2ea8a5ff..b3edb684f6465d8e1268ebb3f9d43ad50c84ef55 100644 (file)
@@ -328,9 +328,11 @@ ngx_stream_log_error(ngx_log_t *log, u_char *buf, size_t len)
     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;