Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > fb1832787a7adf918aad2d840f64675b > files > 15

php-5.2.4-3.5mdv2008.0.src.rpm

Index: ext/mbstring/libmbfl/filters/mbfilter_htmlent.c
===================================================================
RCS file: /repository/php-src/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c,v
retrieving revision 1.7
retrieving revision 1.7.4.1
diff -u -p -r1.7 -r1.7.4.1
--- ext/mbstring/libmbfl/filters/mbfilter_htmlent.c	21 Feb 2005 10:12:43 -0000	1.7
+++ ext/mbstring/libmbfl/filters/mbfilter_htmlent.c	16 Oct 2008 01:02:39 -0000	1.7.4.1
@@ -232,8 +232,7 @@ int mbfl_filt_conv_html_dec(int c, mbfl_
 				mbfl_filt_conv_html_dec_flush(filter);
 				if (c=='&')
 				{
-					filter->status = 1;
-					buffer[0] = '&';
+					buffer[filter->status++] = '&';
 				}
 			}
 		}
@@ -244,17 +243,19 @@ int mbfl_filt_conv_html_dec(int c, mbfl_
 int mbfl_filt_conv_html_dec_flush(mbfl_convert_filter *filter)
 {
 	int status, pos = 0;
-	char *buffer;
+	unsigned char *buffer;
+	int err = 0;
 
-	buffer = (char*)filter->opaque;
+	buffer = (unsigned char*)filter->opaque;
 	status = filter->status;
+	filter->status = 0;
 	/* flush fragments */
 	while (status--) {
-		CK((*filter->output_function)(buffer[pos++], filter->data));
+		int e = (*filter->output_function)(buffer[pos++], filter->data);
+		if (e != 0)
+			err = e;
 	}
-	filter->status = 0;
-	/*filter->buffer = 0; of cause NOT*/
-	return 0;
+	return err;
 }