diff options
author | Vladimir Homutov <vl@nginx.com> | 2015-08-13 15:55:21 +0300 |
---|---|---|
committer | Vladimir Homutov <vl@nginx.com> | 2015-08-13 15:55:21 +0300 |
commit | f2d31f829103aadff14178cf49ce0ae398af6c7a (patch) | |
tree | 27f6786258d73796e9d7c10fee5253b3ebebf721 /src/stream/ngx_stream_handler.c | |
parent | 75dcdc226982fbff7030c00a40a8915e275ddb81 (diff) | |
download | nginx-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.c | 4 |
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; |