PHP 4.3.11 の mb_detect_encoding() がバグっている件
2005-07-10-1: [PHP]
結構前の話だけど,忘れてしまいそうなので.
- 概要
PHP 4.3.10 から 4.3.11 へバージョンアップした際,
mb_convert_encoding() の戻り値を mb_detect_encoding() に渡した場合の結果がおかしい.
- 対策
以下のパッチを当てる.
Index: ext/mbstring/libmbfl/mbfl/mbfilter.c
===================================================================
RCS file: /repository/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 mbfilter.c
--- ext/mbstring/libmbfl/mbfl/mbfilter.c 13 Apr 2005 08:08:28 -0000 1.1.2.6
+++ ext/mbstring/libmbfl/mbfl/mbfilter.c 14 Apr 2005 14:04:11 -0000
@@ -555,9 +555,11 @@
while (n > 0) {
for (i = 0; i < num; i++) {
filter = &flist[i];
- (*filter->filter_function)(*p, filter);
- if (filter->flag) {
- bad++;
+ if (!filter->flag) {
+ (*filter->filter_function)(*p, filter);
+ if (filter->flag) {
+ bad++;
+ }
}
}
if ((num - 1) <= bad && !strict) {
http://ns1.php.gr.jp/pipermail/php-users/2005-April/025840.html
http://ns1.php.gr.jp/pipermail/php-users/2005-April/025880.html
関連記事:
[2005-11-02-2] PHP の現行リリースに重大な脆弱性