cvs: php-src /ext/unicode unicode_iterators.c /ext/unicode/tests textiterator_getall_001.phpt textiterator_next_001.phpt
| From: | Felipe Pena | Date: | Fri, 12 Sep 2008 17:30:53 +0000 |
| Subject: | cvs: php-src /ext/unicode unicode_iterators.c /ext/unicode/tests textiterator_getall_001.phpt textiterator_next_001.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-53095@lists.php.net to get a copy of this message | ||
felipe Fri Sep 12 17:30:53 2008 UTC
Added files:
/php-src/ext/unicode/tests textiterator_getall_001.phpt
textiterator_next_001.phpt
Modified files:
/php-src/ext/unicode unicode_iterators.c
Log:
- Fixed endless loop and segfault
http://cvs.php.net/viewvc.cgi/php-src/ext/unicode/unicode_iterators.c?r1=1.48&r2=1.49&diff_format=u
Index: php-src/ext/unicode/unicode_iterators.c
diff -u php-src/ext/unicode/unicode_iterators.c:1.48 php-src/ext/unicode/unicode_iterators.c:1.49
--- php-src/ext/unicode/unicode_iterators.c:1.48 Thu Feb 28 14:16:24 2008
+++ php-src/ext/unicode/unicode_iterators.c Fri Sep 12 17:30:53 2008
@@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: unicode_iterators.c,v 1.48 2008/02/28 14:16:24 felipe Exp $ */
+/* $Id: unicode_iterators.c,v 1.49 2008/09/12 17:30:53 felipe Exp $ */
/*
* TODO
@@ -157,6 +157,11 @@
if (object->u.cp.offset == UBRK_DONE) {
return;
}
+
+ if (object->text == NULL) {
+ object->u.cp.offset = object->u.cp.cp_offset = UBRK_DONE;
+ return;
+ }
if (flags & ITER_REVERSE) {
U16_BACK_1(object->text, 0, object->u.cp.offset);
http://cvs.php.net/viewvc.cgi/php-src/ext/unicode/tests/textiterator_getall_001.phpt?view=markup&rev=1.1
Index: php-src/ext/unicode/tests/textiterator_getall_001.phpt
+++ php-src/ext/unicode/tests/textiterator_getall_001.phpt
--TEST--
TextIterator::getAll(): Simple test
--FILE--
<?php
$x = new textiterator('asda');
var_dump($x->getAll());
?>
--EXPECT--
array(4) {
[0]=>
unicode(1) "a"
[1]=>
unicode(1) "s"
[2]=>
unicode(1) "d"
[3]=>
unicode(1) "a"
}
http://cvs.php.net/viewvc.cgi/php-src/ext/unicode/tests/textiterator_next_001.phpt?view=markup&rev=1.1
Index: php-src/ext/unicode/tests/textiterator_next_001.phpt
+++ php-src/ext/unicode/tests/textiterator_next_001.phpt
--TEST--
TextIterator::next(): Testing with no data
--FILE--
<?php
$x = new textiterator;
var_dump($x->next());
?>
--EXPECTF--
Warning: TextIterator::__construct() expects at least 1 parameter, 0 given in %s on line %d
int(-1)