]> granicus.if.org Git - php/commitdiff
added missing parentheses
authorMasaki Kagaya <masakielastic@gmail.com>
Wed, 18 Feb 2015 14:17:39 +0000 (23:17 +0900)
committerStanislav Malyshev <stas@php.net>
Mon, 9 Mar 2015 06:39:04 +0000 (23:39 -0700)
added test case for bug #68846
replaced tab with space
added missing parentheses again
See also: http://icu-project.org/docs/papers/gb18030.html#h7

NEWS
ext/mbstring/libmbfl/filters/mbfilter_gb18030.c
ext/mbstring/tests/bug68846.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index b0af1ae8584a52d5f01fa972ced298eefe91961c..1c8785d7965e793133ffa12d7678936bcd846c41 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,10 @@ PHP                                                                        NEWS
    (Julian)
   . Fixed bug #68917 (parse_url fails on some partial urls). (Wei Dai)
 
+- Mbstring:
+   . Fixed bug #68846 (False detection of CJK Unified Ideographs Extension E).
+    (Masaki Kagaya)
+
 - Mysqli:
   . Fixed bug#63486 (mysqli_free_result leave the resource variable in a messy
     state). (Julian) 
index f6f12be449866895d114dce7174e1c3b4537c2d8..7767c6551f031bc316f0b8159fca035e9ce459ad 100644 (file)
@@ -239,7 +239,7 @@ mbfl_filt_conv_gb18030_wchar(int c, mbfl_convert_filter *filter)
                if (((c1 >= 0x81 && c1 <= 0x84) || (c1 >= 0x90 && c1 <= 0xe3)) &&
                        c2 >= 0x30 && c2 <= 0x39 && c3 >= 0x81 && c3 <= 0xfe && c >= 0x30 && c <= 0x39) {
                        if (c1 >= 0x90 && c1 <= 0xe3) {
-                               w = ((c1 - 0x90)*10 + (c2 - 0x30)*126 + (c3 - 0x81))*10 + (c - 0x30) + 0x10000;
+                               w = ((((c1 - 0x90)*10 + (c2 - 0x30))*126 + (c3 - 0x81)))*10 + (c - 0x30) + 0x10000;
                        } else { /* Unicode BMP */
                                w = (((c1 - 0x81)*10 + (c2 - 0x30))*126 + (c3 - 0x81))*10 + (c - 0x30);
                                if (w >= 0 && w <= 39419) {
diff --git a/ext/mbstring/tests/bug68846.phpt b/ext/mbstring/tests/bug68846.phpt
new file mode 100644 (file)
index 0000000..1b43e3d
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+Bug #68846     False detection of CJK Unified Ideographs Extension E
+--SKIPIF--
+<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
+--FILE--
+<?php
+var_dump(
+    "\x00\x02\x0b\xb7" === mb_convert_encoding("\x95\x34\xb2\x35", 'UTF-32', 'GB18030')
+);
+?>
+--EXPECT--
+bool(true)
\ No newline at end of file