aboutsummaryrefslogtreecommitdiff
path: root/src/stream/ngx_stream_handler.c
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2015-08-13 15:55:21 +0300
committerVladimir Homutov <vl@nginx.com>2015-08-13 15:55:21 +0300
commitf2d31f829103aadff14178cf49ce0ae398af6c7a (patch)
tree27f6786258d73796e9d7c10fee5253b3ebebf721 /src/stream/ngx_stream_handler.c
parent75dcdc226982fbff7030c00a40a8915e275ddb81 (diff)
downloadnginx-f2d31f829103aadff14178cf49ce0ae398af6c7a.tar.gz
nginx-f2d31f829103aadff14178cf49ce0ae398af6c7a.zip
Stream: fixed potential error log buffer overrun.
Found by Duan Jiong <djduanjiong@gmail.com>.
Diffstat (limited to 'src/stream/ngx_stream_handler.c')
-rw-r--r--src/stream/ngx_stream_handler.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/stream/ngx_stream_handler.c b/src/stream/ngx_stream_handler.c
index 24afbcd35..b3edb684f 100644
--- 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_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;