diff options
author | Stefan Esser <sesser@php.net> | 2002-10-07 16:11:30 +0000 |
---|---|---|
committer | Stefan Esser <sesser@php.net> | 2002-10-07 16:11:30 +0000 |
commit | a8191a66c13103b2a9cbf7ad5d66c1b80164c499 (patch) | |
tree | 5d3ba658b6d4c31926f8cc0d61005ce0abadd235 | |
parent | 5619a3d0a5ae0cfb63e0052c4a144e89a29173e2 (diff) | |
download | php-git-a8191a66c13103b2a9cbf7ad5d66c1b80164c499.tar.gz |
never smash the stack...
-rw-r--r-- | ext/mbstring/mbfilter.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ext/mbstring/mbfilter.c b/ext/mbstring/mbfilter.c index 01a59e28f5..918e455124 100644 --- a/ext/mbstring/mbfilter.c +++ b/ext/mbstring/mbfilter.c @@ -3535,6 +3535,7 @@ mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter TSRMLS_DC) { int tmp[10]; int i = 0, p = 0, e; + unsigned int uc; if (c<256 && mblen_table_html[c]==1) { CK((*filter->output_function)(c, filter->data TSRMLS_CC)); @@ -3554,15 +3555,17 @@ mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter TSRMLS_DC) } i++; } + i=0; if (!p) { CK((*filter->output_function)('#', filter->data TSRMLS_CC)); + uc = (unsigned int)c; do { - tmp[i++] = '0'+c%10; - c /= 10; - } while (c); + tmp[i++] = '0'+uc%10; + uc /= 10; + } while (uc); do { CK((*filter->output_function)(tmp[--i], filter->data TSRMLS_CC)); - } while(i); + } while (i); } CK((*filter->output_function)(';', filter->data TSRMLS_CC)); } |