fa                                       Wed, 02 Nov 2011 07:36:52 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=318672

Log:
Fix #60192 SegFault when Collator not constructed properly

Bug: https://bugs.php.net/60192 (Assigned) SegFault when Collator not 
constructed properly
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c
    U   php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c
    U   php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c
    A   php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt
    A   php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt
    A   php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt
    A   php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt
    A   
php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt
    U   php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c
    U   php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c
    U   php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c
    A   php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt
    A   php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt
    A   php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt
    A   php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt
    A   
php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt
    U   php/php-src/trunk/ext/intl/collator/collator_compare.c
    U   php/php-src/trunk/ext/intl/collator/collator_locale.c
    U   php/php-src/trunk/ext/intl/collator/collator_sort.c
    A   php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt
    A   php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt
    A   php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt
    A   php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt
    A   php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt

Modified: php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -99,6 +99,10 @@
 		RETURN_FALSE;
 	}

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	/* Then compare them. */
 	result = ucol_strcoll(
 		co->ucoll,

Modified: php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -51,6 +51,10 @@
 	/* Fetch the object. */
 	COLLATOR_METHOD_FETCH_OBJECT;

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	/* Get locale by specified type. */
 	locale_name = (char*) ucol_getLocaleByType(
 		co->ucoll, type, COLLATOR_ERROR_CODE_P( co ) );

Modified: php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -73,6 +73,10 @@
 		/* Fetch collator object. */
 		co = (Collator_object *) zend_object_store_get_object( INTL_G(current_collator) TSRMLS_CC );

+		if (!co || !co->ucoll) {
+			php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+		}
+
 		/* Compare the strings using ICU. */
 		result->value.lval = ucol_strcoll(
 				co->ucoll,
@@ -441,6 +445,10 @@
 		/* Get sort key, reallocating the buffer if needed. */
 		bufLeft = sortKeyBufSize - sortKeyBufOffset;

+		if (!co || !co->ucoll) {
+			php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+		}
+
 		sortKeyLen = ucol_getSortKey( co->ucoll,
 									  utf16_buf,
 									  utf16_len,
@@ -571,6 +579,10 @@
 		RETURN_FALSE;
 	}

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	key_len = ucol_getSortKey(co->ucoll, ustr, ustr_len, key, 0);
 	if(!key_len) {
 		efree( ustr );

Added: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->compare('h', 'H');
+--EXPECTF--
+
+Fatal error: Collator::compare(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->getLocale(Locale::ACTUAL_LOCALE);
+--EXPECTF--
+
+Fatal error: Collator::getLocale(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->getSortKey('h');
+--EXPECTF--
+
+Fatal error: Collator::getSortKey(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$a = array('a', 'b');
+$c->sort($a);
+--EXPECTF--
+
+Fatal error: Collator::sort(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$a = array('a', 'b');
+$c->sortWithSortKeys($a);
+--EXPECTF--
+
+Fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d

Modified: php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -99,6 +99,10 @@
 		RETURN_FALSE;
 	}

+	if (!co || !co->ucoll) {
+	php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	/* Then compare them. */
 	result = ucol_strcoll(
 		co->ucoll,

Modified: php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -51,6 +51,10 @@
 	/* Fetch the object. */
 	COLLATOR_METHOD_FETCH_OBJECT;

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	/* Get locale by specified type. */
 	locale_name = (char*) ucol_getLocaleByType(
 		co->ucoll, type, COLLATOR_ERROR_CODE_P( co ) );

Modified: php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -73,6 +73,10 @@
 		/* Fetch collator object. */
 		co = (Collator_object *) zend_object_store_get_object( INTL_G(current_collator) TSRMLS_CC );

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 		/* Compare the strings using ICU. */
 		result->value.lval = ucol_strcoll(
 				co->ucoll,
@@ -441,6 +445,10 @@
 		/* Get sort key, reallocating the buffer if needed. */
 		bufLeft = sortKeyBufSize - sortKeyBufOffset;

+		if (!co || !co->ucoll) {
+			php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+		}
+
 		sortKeyLen = ucol_getSortKey( co->ucoll,
 									  utf16_buf,
 									  utf16_len,
@@ -571,6 +579,10 @@
 		RETURN_FALSE;
 	}

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	key_len = ucol_getSortKey(co->ucoll, ustr, ustr_len, key, 0);
 	if(!key_len) {
 		efree( ustr );

Added: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->compare('h', 'H');
+--EXPECTF--
+
+Fatal error: Collator::compare(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->getLocale(Locale::ACTUAL_LOCALE);
+--EXPECTF--
+
+Fatal error: Collator::getLocale(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->getSortKey('h');
+--EXPECTF--
+
+Fatal error: Collator::getSortKey(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$a = array('a', 'b');
+$c->sort($a);
+--EXPECTF--
+
+Fatal error: Collator::sort(): Object not initialized in %s on line %d

Added: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$a = array('a', 'b');
+$c->sortWithSortKeys($a);
+--EXPECTF--
+
+Fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d

Modified: php/php-src/trunk/ext/intl/collator/collator_compare.c
===================================================================
--- php/php-src/trunk/ext/intl/collator/collator_compare.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/trunk/ext/intl/collator/collator_compare.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -99,6 +99,10 @@
 		RETURN_FALSE;
 	}

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	/* Then compare them. */
 	result = ucol_strcoll(
 		co->ucoll,

Modified: php/php-src/trunk/ext/intl/collator/collator_locale.c
===================================================================
--- php/php-src/trunk/ext/intl/collator/collator_locale.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/trunk/ext/intl/collator/collator_locale.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -51,6 +51,10 @@
 	/* Fetch the object. */
 	COLLATOR_METHOD_FETCH_OBJECT;

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	/* Get locale by specified type. */
 	locale_name = (char*) ucol_getLocaleByType(
 		co->ucoll, type, COLLATOR_ERROR_CODE_P( co ) );

Modified: php/php-src/trunk/ext/intl/collator/collator_sort.c
===================================================================
--- php/php-src/trunk/ext/intl/collator/collator_sort.c	2011-11-02 06:31:33 UTC (rev 318671)
+++ php/php-src/trunk/ext/intl/collator/collator_sort.c	2011-11-02 07:36:52 UTC (rev 318672)
@@ -73,6 +73,10 @@
 		/* Fetch collator object. */
 		co = (Collator_object *) zend_object_store_get_object( INTL_G(current_collator) TSRMLS_CC );

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 		/* Compare the strings using ICU. */
 		result->value.lval = ucol_strcoll(
 				co->ucoll,
@@ -441,6 +445,10 @@
 		/* Get sort key, reallocating the buffer if needed. */
 		bufLeft = sortKeyBufSize - sortKeyBufOffset;

+		if (!co || !co->ucoll) {
+			php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+		}
+
 		sortKeyLen = ucol_getSortKey( co->ucoll,
 									  utf16_buf,
 									  utf16_len,
@@ -571,6 +579,10 @@
 		RETURN_FALSE;
 	}

+	if (!co || !co->ucoll) {
+		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
+	}
+
 	key_len = ucol_getSortKey(co->ucoll, ustr, ustr_len, key, 0);
 	if(!key_len) {
 		efree( ustr );

Added: php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt
===================================================================
--- php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt	                        (rev 0)
+++ php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->compare('h', 'H');
+--EXPECTF--
+
+Fatal error: Collator::compare(): Object not initialized in %s on line %d

Added: php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt
===================================================================
--- php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt	                        (rev 0)
+++ php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->getLocale(Locale::ACTUAL_LOCALE);
+--EXPECTF--
+
+Fatal error: Collator::getLocale(): Object not initialized in %s on line %d

Added: php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt
===================================================================
--- php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt	                        (rev 0)
+++ php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,20 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$c->getSortKey('h');
+--EXPECTF--
+
+Fatal error: Collator::getSortKey(): Object not initialized in %s on line %d

Added: php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt
===================================================================
--- php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt	                        (rev 0)
+++ php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$a = array('a', 'b');
+$c->sort($a);
+--EXPECTF--
+
+Fatal error: Collator::sort(): Object not initialized in %s on line %d

Added: php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt
===================================================================
--- php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt	                        (rev 0)
+++ php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt	2011-11-02 07:36:52 UTC (rev 318672)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #60192 (SegFault when Collator not constructed properly)
+--SKIPIF--
+<?php
+	if (!extension_loaded('intl')) { die('skip intl extension not available'); }
+?>
+--FILE--
+<?php
+
+class Collator2 extends Collator{
+	public function __construct() {
+		// ommitting parent::__construct($someLocale);
+	}
+}
+
+$c = new Collator2();
+$a = array('a', 'b');
+$c->sortWithSortKeys($a);
+--EXPECTF--
+
+Fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to