summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2018-06-30 19:41:55 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2018-06-30 23:15:02 +0200
commit1118fca75dca112e7a6aa60296626733ccfc4284 (patch)
tree0abd7479e2bbbabd368ab711964bbf8e5dc40f77
parent9b0df97a42749464069859c5ca77c0241a8b05ca (diff)
downloadphp-git-1118fca75dca112e7a6aa60296626733ccfc4284.tar.gz
Fix #76556: get_debug_info handler for BreakIterator shows wrong type
We use the retrieved type for the "type" element instead of the text. This has been confused during the PHP 7 upgrade[1]. [1] http://git.php.net/?p=php-src.git;a=commit;h=1d793348067e5769144c0f7efd86428a4137baec
-rw-r--r--NEWS4
-rw-r--r--ext/intl/breakiterator/breakiterator_class.cpp2
-rw-r--r--ext/intl/tests/bug76556.phpt23
3 files changed, 28 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index d21ff66990..b2310d8c45 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,10 @@ PHP NEWS
. Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to
non-blocking). (Nikita)
+- intl:
+ . Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong
+ type). (cmb)
+
- mbstring:
. Fixed bug #76532 (Integer overflow and excessive memory usage
in mb_strimwidth). (MarcusSchwarz)
diff --git a/ext/intl/breakiterator/breakiterator_class.cpp b/ext/intl/breakiterator/breakiterator_class.cpp
index ae9e258608..cc3865429c 100644
--- a/ext/intl/breakiterator/breakiterator_class.cpp
+++ b/ext/intl/breakiterator/breakiterator_class.cpp
@@ -167,7 +167,7 @@ static HashTable *BreakIterator_get_debug_info(zval *object, int *is_temp)
}
ZVAL_STRING(&val, const_cast<char*>(typeid(*biter).name()));
- zend_hash_str_update(debug_info, "type", sizeof("type") - 1, &bio->text);
+ zend_hash_str_update(debug_info, "type", sizeof("type") - 1, &val);
return debug_info;
}
diff --git a/ext/intl/tests/bug76556.phpt b/ext/intl/tests/bug76556.phpt
new file mode 100644
index 0000000000..57395fba2d
--- /dev/null
+++ b/ext/intl/tests/bug76556.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #76556 (get_debug_info handler for BreakIterator shows wrong type)
+--SKIPIF--
+<?php
+if (!extension_loaded('intl')) die('skip intl extension not available');
+?>
+--FILE--
+<?php
+$it = IntlBreakIterator::createCharacterInstance();
+$it->setText('foo');
+var_dump($it);
+?>
+===DONE===
+--EXPECTF--
+object(IntlRuleBasedBreakIterator)#%d (3) {
+ ["valid"]=>
+ bool(true)
+ ["text"]=>
+ string(3) "foo"
+ ["type"]=>
+ string(%d) "%sRuleBasedBreakIterator%s"
+}
+===DONE===