pajoye                                   Mon, 02 Nov 2009 18:11:33 +0000

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

Log:
- Merge 290129, Fixed bug #49908 (throwing exception in __autoload crashes when 
interface is not defined)

Bug: http://bugs.php.net/49908 (Closed) throwing exception in __autoload 
crashes when interface is not defined
      
Changed paths:
    _U  php/php-src/branches/PHP_5_3_1/
    UU  php/php-src/branches/PHP_5_3_1/NEWS
    A + php/php-src/branches/PHP_5_3_1/Zend/tests/bug49908.phpt
        (from php/php-src/branches/PHP_5_3/Zend/tests/bug49908.phpt:r290129)
    U   php/php-src/branches/PHP_5_3_1/Zend/zend_vm_def.h
    U   php/php-src/branches/PHP_5_3_1/Zend/zend_vm_execute.h
    _U  php/php-src/branches/PHP_5_3_1/ext/mysql/
    _U  php/php-src/branches/PHP_5_3_1/ext/mysqli/
    _U  php/php-src/branches/PHP_5_3_1/ext/mysqlnd/
    _U  php/php-src/branches/PHP_5_3_1/ext/pdo_mysql/
    _U  php/php-src/branches/PHP_5_3_1/ext/tidy/tests/
    _U  
php/php-src/branches/PHP_5_3_1/tests/security/open_basedir_parse_ini_file.phpt

Property changes on: php/php-src/branches/PHP_5_3_1
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3:288351,289341,289612,289621-289624,289666-289667,289690,289706,289752,289763,289768,289779,289987,289990,290029
/php/php-src/trunk:284726
   + /php/php-src/branches/PHP_5_3:288351,289341,289612,289621-289624,289666-289667,289690,289706,289752,289763,289768,289779,289987,289990,290029,290129,290147
/php/php-src/trunk:284726

Modified: php/php-src/branches/PHP_5_3_1/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3_1/NEWS	2009-11-02 17:56:20 UTC (rev 290151)
+++ php/php-src/branches/PHP_5_3_1/NEWS	2009-11-02 18:11:33 UTC (rev 290152)
@@ -7,6 +7,8 @@

 - Fixed crash in com_print_typeinfo when an invalid typelib is given. (Pierre)

+- Fixed bug #49908 (throwing exception in __autoload crashes when interface
+  is not defined). (Felipe)
 - Fixed bug #49142 (crash when exception thrown from __tostring()).
   (David Soria Parra)
 - Fixed bug #49986 (Missing ICU DLLs on windows package). (Pierre)


Property changes on: php/php-src/branches/PHP_5_3_1/NEWS
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3/NEWS:288028,288034,288067,288081,288083,288085,288087-288088,288096,288111,288116-288117,288159,288202-288204,288208,288215,288246,288263,288265,288267,288329,288339,288351,288354,288378-288379,288393,288396,288411,288437,288439,288446-288448,288462,288510-288511,288514-288518,288522-288524,288531,288537,288541,288547-288548,288555,288562,288571,288575,288580,288583,288585,288598,288603,288638,288644,288653,288676,288679,288705,288741,288743,288745-288747,288749,288784,288793,288834,288892-288893,288896,288940,288943,288945,288953,288973,289004,289019,289027-289028,289030,289039,289046,289049,289076,289123,289214,289216,289247,289249,289285,289339,289341,289351,289366,289368,289372,289445-289446,289531,289546-289547,289557,289568,289581,289587,289612,289621-289624,289666-289667,289779,289987,289990,290029
/php/php-src/trunk/NEWS:284726
   + /php/php-src/branches/PHP_5_3/NEWS:288028,288034,288067,288081,288083,288085,288087-288088,288096,288111,288116-288117,288159,288202-288204,288208,288215,288246,288263,288265,288267,288329,288339,288351,288354,288378-288379,288393,288396,288411,288437,288439,288446-288448,288462,288510-288511,288514-288518,288522-288524,288531,288537,288541,288547-288548,288555,288562,288571,288575,288580,288583,288585,288598,288603,288638,288644,288653,288676,288679,288705,288741,288743,288745-288747,288749,288784,288793,288834,288892-288893,288896,288940,288943,288945,288953,288973,289004,289019,289027-289028,289030,289039,289046,289049,289076,289123,289214,289216,289247,289249,289285,289339,289341,289351,289366,289368,289372,289445-289446,289531,289546-289547,289557,289568,289581,289587,289612,289621-289624,289666-289667,289779,289987,289990,290029,290129,290147
/php/php-src/trunk/NEWS:284726

Copied: php/php-src/branches/PHP_5_3_1/Zend/tests/bug49908.phpt (from rev 290129, php/php-src/branches/PHP_5_3/Zend/tests/bug49908.phpt)
===================================================================
--- php/php-src/branches/PHP_5_3_1/Zend/tests/bug49908.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_3_1/Zend/tests/bug49908.phpt	2009-11-02 18:11:33 UTC (rev 290152)
@@ -0,0 +1,28 @@
+--TEST--
+Bug #49908 (throwing exception in __autoload crashes when interface is not defined)
+--FILE--
+<?php
+
+function __autoload($className) {
+	var_dump($className);
+
+	if ($className == 'Foo') {
+		class Foo implements Bar {};
+	} else {
+		throw new Exception($className);
+	}
+}
+
+new Foo;
+
+?>
+--EXPECTF--
+%unicode|string%(3) "Foo"
+%unicode|string%(3) "Bar"
+
+Fatal error: Uncaught exception 'Exception' with message 'Bar' in %s:%d
+Stack trace:
+#0 %s(7): __autoload('Bar')
+#1 %s(13): __autoload('Foo')
+#2 {main}
+  thrown in %s on line %d

Modified: php/php-src/branches/PHP_5_3_1/Zend/zend_vm_def.h
===================================================================
--- php/php-src/branches/PHP_5_3_1/Zend/zend_vm_def.h	2009-11-02 17:56:20 UTC (rev 290151)
+++ php/php-src/branches/PHP_5_3_1/Zend/zend_vm_def.h	2009-11-02 18:11:33 UTC (rev 290152)
@@ -4245,12 +4245,13 @@
 	zend_class_entry *ce = EX_T(opline->op1.u.var).class_entry;
 	zend_class_entry *iface = zend_fetch_class(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), opline->extended_value TSRMLS_CC);

-	if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) {
-		zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name);
+	if (iface) {
+		if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) {
+			zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name);
+		}
+		zend_do_implement_interface(ce, iface TSRMLS_CC);
 	}

-	zend_do_implement_interface(ce, iface TSRMLS_CC);
-
 	ZEND_VM_NEXT_OPCODE();
 }


Modified: php/php-src/branches/PHP_5_3_1/Zend/zend_vm_execute.h
===================================================================
--- php/php-src/branches/PHP_5_3_1/Zend/zend_vm_execute.h	2009-11-02 17:56:20 UTC (rev 290151)
+++ php/php-src/branches/PHP_5_3_1/Zend/zend_vm_execute.h	2009-11-02 18:11:33 UTC (rev 290152)
@@ -889,12 +889,13 @@
 	zend_class_entry *ce = EX_T(opline->op1.u.var).class_entry;
 	zend_class_entry *iface = zend_fetch_class(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), opline->extended_value TSRMLS_CC);

-	if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) {
-		zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name);
+	if (iface) {
+		if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) {
+			zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name);
+		}
+		zend_do_implement_interface(ce, iface TSRMLS_CC);
 	}

-	zend_do_implement_interface(ce, iface TSRMLS_CC);
-
 	ZEND_VM_NEXT_OPCODE();
 }



Property changes on: php/php-src/branches/PHP_5_3_1/ext/mysql
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3/ext/mysql:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029
/php/php-src/trunk/ext/mysql:284726
   + /php/php-src/branches/PHP_5_3/ext/mysql:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029,290129,290147
/php/php-src/trunk/ext/mysql:284726


Property changes on: php/php-src/branches/PHP_5_3_1/ext/mysqli
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3/ext/mysqli:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029
/php/php-src/trunk/ext/mysqli:284726
   + /php/php-src/branches/PHP_5_3/ext/mysqli:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029,290129,290147
/php/php-src/trunk/ext/mysqli:284726


Property changes on: php/php-src/branches/PHP_5_3_1/ext/mysqlnd
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3/ext/mysqlnd:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029
/php/php-src/trunk/ext/mysqlnd:284726
   + /php/php-src/branches/PHP_5_3/ext/mysqlnd:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029,290129,290147
/php/php-src/trunk/ext/mysqlnd:284726


Property changes on: php/php-src/branches/PHP_5_3_1/ext/pdo_mysql
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3/ext/pdo_mysql:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029
/php/php-src/trunk/ext/pdo_mysql:284726
   + /php/php-src/branches/PHP_5_3/ext/pdo_mysql:288202-289561,289612,289621-289624,289666,289690,289706,289752,289763,289768,289779,289987,289990,290029,290129,290147
/php/php-src/trunk/ext/pdo_mysql:284726


Property changes on: php/php-src/branches/PHP_5_3_1/ext/tidy/tests
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3/ext/tidy/tests:288351,289341,289612,289621-289624,289666-289667,289690,289706,289752,289763,289768,289779,289987,289990,290029
/php/php-src/trunk/ext/tidy/tests:284726,287798-287941
   + /php/php-src/branches/PHP_5_3/ext/tidy/tests:288351,289341,289612,289621-289624,289666-289667,289690,289706,289752,289763,289768,289779,289987,289990,290029,290129,290147
/php/php-src/trunk/ext/tidy/tests:284726,287798-287941


Property changes on: php/php-src/branches/PHP_5_3_1/tests/security/open_basedir_parse_ini_file.phpt
___________________________________________________________________
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3/tests/security/open_basedir_parse_ini_file.phpt:288351,289341,289612,289621-289624,289666-289667,289690,289706,289752,289763,289768,289779,289987,289990,290029
/php/php-src/trunk/tests/security/open_basedir_parse_ini_file.phpt:265951
   + /php/php-src/branches/PHP_5_3/tests/security/open_basedir_parse_ini_file.phpt:288351,289341,289612,289621-289624,289666-289667,289690,289706,289752,289763,289768,289779,289987,289990,290029,290129,290147
/php/php-src/trunk/tests/security/open_basedir_parse_ini_file.phpt:265951
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to