#43175 [Opn->Ver]: __destruct() with __call() causes segfault

From: Date: Thu, 01 Nov 2007 17:17:42 +0000
Subject: #43175 [Opn->Ver]: __destruct() with __call() causes segfault
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-119218@lists.php.net to get a copy of this message
ID: 43175 Updated by: jani@php.net Reported By: development at domain51 dot com -Status: Open +Status: Verified Bug Type: *General Issues -Operating System: Linux and Mac OS X +Operating System: * -PHP Version: 5.2.4 +PHP Version: 5CVS,6CVS (2007-11-01) New Comment: I noticed you try to throw in destructor and that's not supposed to work. See page: http://docs.php.net/manual/en/language.oop5.decon.php "Note: Attempting to throw an exception from a destructor (called in the time of script termination) causes a fatal error. " Of course it shouldn't cause any crash though. :) Previous Comments: ------------------------------------------------------------------------ [2007-11-01 15:27:51] development at domain51 dot com Description: ------------ If __destruct() throws an exception on an object that was not assigned to a variable, but had __call() invoked, it will segfault Reproduce code: --------------- Full test case available at: http://plumb.domain51.com/sandbox/__destruct-bug/bug.phpt http://plumb.domain51.com/sandbox/__destruct-bug/bug.phps (syntax highlighted) Simplified sample: foobar::factory()>unknown(); foobar()->unknown(); // where foobar is a function wrapping new foobar Expected result: ---------------- Exception to be thrown in foobar::__destruct() Actual result: -------------- Segfault on Linux Bus error on Mac OSX I'll get a backtrace added later as time allows ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43175&edit=1

« previous php.bugs (#119218) next »