summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Esser <sesser@php.net>2002-10-07 16:11:30 +0000
committerStefan Esser <sesser@php.net>2002-10-07 16:11:30 +0000
commita8191a66c13103b2a9cbf7ad5d66c1b80164c499 (patch)
tree5d3ba658b6d4c31926f8cc0d61005ce0abadd235
parent5619a3d0a5ae0cfb63e0052c4a144e89a29173e2 (diff)
downloadphp-git-a8191a66c13103b2a9cbf7ad5d66c1b80164c499.tar.gz
never smash the stack...
-rw-r--r--ext/mbstring/mbfilter.c11
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));
}