<div dir="ltr"><div># HG changeset patch</div><div># User wy7980 <<a href="mailto:wy7980@gmail.com" target="_blank">wy7980@gmail.com</a>></div><div># Date 1541824641 -28800</div><div>#      Sat Nov 10 12:37:21 2018 +0800</div><div># Node ID e93ac0fd29c1f49e7dd49ff5e1efd58c009d359a</div><div># Parent  a2506436986ae9cf941fd9477aa77e28f501e11d</div><div><br></div><div>fix bug of fmt overflow</div><div><br></div><div>diff -r a2506436986a -r e93ac0fd29c1 src/core/ngx_string.c</div><div>--- a/src/core/ngx_string.c<span style="white-space:pre-wrap">        </span>Tue Nov 06 16:32:09 2018 +0300</div><div>+++ b/src/core/ngx_string.c<span style="white-space:pre-wrap">        </span>Sat Nov 10 12:37:21 2018 +0800</div><div>@@ -172,8 +172,9 @@</div><div>     ngx_uint_t             width, sign, hex, max_width, frac_width, scale, n;</div><div>     ngx_str_t             *v;</div><div>     ngx_variable_value_t  *vv;</div><div>-</div><div>-    while (*fmt && buf < last) {</div><div>+    char *fmt_last = (char *)fmt + strlen(fmt);</div><div>+</div><div>+    while (*fmt && buf < last && fmt < fmt_last) {</div><div> </div><div>         /*</div><div>          * "buf < last" means that we could copy at least one character:</div></div>