From:             hannes dot magnusson at gmail dot com
Operating system: FreeBSD
PHP version:      5CVS-2007-05-17 (CVS)
PHP Bug Type:     Reproducible crash
Bug description:  Uncaught exception from a stream wrapper segfaults

Description:
------------
Uncaught exceptions from a stream wrapper segfaults..

Reproduce code:
---------------
<?php
class wrapper {
        function stream_open() {
        return true;
    }
    function stream_eof() {
        throw new exception();
    }
}

stream_wrapper_register("wrap", "wrapper");
$fp = fopen("wrap://...", "r");
feof($fp);


Expected result:
----------------
Fatal error: Uncaught exception 'Exception' in %s:%d
Stack trace:
#0 [internal function]: wrapper->stream_eof()
#1 %s(%d): feof(Resource id #%d)
#2 {main}
  thrown in %s on line %d

Actual result:
--------------
Warning: feof(): wrapper::stream_eof is not implemented! Assuming EOF in
/usr/src/php/5.2/wrapper.php on line 16

Fatal error: Uncaught exception 'Exception' in
/usr/src/php/5.2/wrapper.php:7
Stack trace:
#0 [internal function]: wrapper->stream_eof()
#1 /usr/src/php/5.2/wrapper.php(13): feof(Resource id #6)
#2 {main}
  thrown in /usr/src/php/5.2/wrapper.php on line 7
Segmentation fault: 11 (core dumped)



#0  0x082f6191 in _zend_is_inconsistent (ht=0x5a5a5a76, file=0x8427ad4
"/usr/src/php/5.2/Zend/zend_hash.c", line=868) at
/usr/src/php/5.2/Zend/zend_hash.c:53
#1  0x082f8523 in zend_hash_find (ht=0x5a5a5a76, arKey=0xbfbfe000
"stream_flush", nKeyLength=13, pData=0xbfbfe04c) at
/usr/src/php/5.2/Zend/zend_hash.c:868
#2  0x0830aa6e in zend_std_get_method (object_ptr=0x8472440,
method_name=0x8410b5b "stream_flush", method_len=12) at
/usr/src/php/5.2/Zend/zend_object_handlers.c:767
#3  0x082e159e in zend_call_function (fci=0xbfbfe190, fci_cache=0x0) at
/usr/src/php/5.2/Zend/zend_execute_API.c:783
#4  0x082e0cf7 in call_user_function_ex (function_table=0x0,
object_pp=0x8472440, function_name=0xbfbfe210, retval_ptr_ptr=0xbfbfe20c,
param_count=0, params=0x0, no_separation=0, 
    symbol_table=0x0) at /usr/src/php/5.2/Zend/zend_execute_API.c:602
#5  0x082c16ec in php_userstreamop_flush (stream=0x8471064) at
/usr/src/php/5.2/main/streams/userspace.c:694
#6  0x082b7ac9 in _php_stream_flush (stream=0x8471064, closing=1) at
/usr/src/php/5.2/main/streams/streams.c:1008
#7  0x082b6495 in _php_stream_free (stream=0x8471064, close_options=11) at
/usr/src/php/5.2/main/streams/streams.c:321
#8  0x082b88f7 in stream_resource_regular_dtor (rsrc=0x847111c) at
/usr/src/php/5.2/main/streams/streams.c:1369
#9  0x082f9b79 in list_entry_destructor (ptr=0x847111c) at
/usr/src/php/5.2/Zend/zend_list.c:184
#10 0x082f78ee in zend_hash_del_key_or_index (ht=0x845da48, arKey=0x0,
nKeyLength=0, h=6, flag=1) at /usr/src/php/5.2/Zend/zend_hash.c:497
#11 0x082f986b in _zend_list_delete (id=6) at
/usr/src/php/5.2/Zend/zend_list.c:58
#12 0x082ebf86 in _zval_dtor_func (zvalue=0x847130c,
__zend_filename=0x8425998 "/usr/src/php/5.2/Zend/zend_variables.h",
__zend_lineno=35) at /usr/src/php/5.2/Zend/zend_variables.c:60
#13 0x082e0067 in _zval_dtor (zvalue=0x847130c, __zend_filename=0x842593c
"/usr/src/php/5.2/Zend/zend_execute_API.c", __zend_lineno=414) at
zend_variables.h:35
#14 0x082e0220 in _zval_ptr_dtor (zval_ptr=0x8471354,
__zend_filename=0x84269a4 "/usr/src/php/5.2/Zend/zend_variables.c",
__zend_lineno=175)
    at /usr/src/php/5.2/Zend/zend_execute_API.c:414
#15 0x082ec243 in _zval_ptr_dtor_wrapper (zval_ptr=0x8471354) at
/usr/src/php/5.2/Zend/zend_variables.c:175
#16 0x082f7a0c in zend_hash_destroy (ht=0x8471268) at
/usr/src/php/5.2/Zend/zend_hash.c:526
#17 0x082ebf43 in _zval_dtor_func (zvalue=0x84732fc,
__zend_filename=0x8425998 "/usr/src/php/5.2/Zend/zend_variables.h",
__zend_lineno=35) at /usr/src/php/5.2/Zend/zend_variables.c:43
#18 0x082e0067 in _zval_dtor (zvalue=0x84732fc, __zend_filename=0x842593c
"/usr/src/php/5.2/Zend/zend_execute_API.c", __zend_lineno=414) at
zend_variables.h:35
#19 0x082e0220 in _zval_ptr_dtor (zval_ptr=0x84713a4,
__zend_filename=0x84269a4 "/usr/src/php/5.2/Zend/zend_variables.c",
__zend_lineno=175)
    at /usr/src/php/5.2/Zend/zend_execute_API.c:414
#20 0x082ec243 in _zval_ptr_dtor_wrapper (zval_ptr=0x84713a4) at
/usr/src/php/5.2/Zend/zend_variables.c:175
#21 0x082f7a0c in zend_hash_destroy (ht=0x8473024) at
/usr/src/php/5.2/Zend/zend_hash.c:526
#22 0x082ebf43 in _zval_dtor_func (zvalue=0x8472fe8,
__zend_filename=0x8425998 "/usr/src/php/5.2/Zend/zend_variables.h",
__zend_lineno=35) at /usr/src/php/5.2/Zend/zend_variables.c:43
#23 0x082e0067 in _zval_dtor (zvalue=0x8472fe8, __zend_filename=0x842593c
"/usr/src/php/5.2/Zend/zend_execute_API.c", __zend_lineno=414) at
zend_variables.h:35
#24 0x082e0220 in _zval_ptr_dtor (zval_ptr=0x84713f8,
__zend_filename=0x84269a4 "/usr/src/php/5.2/Zend/zend_variables.c",
__zend_lineno=175)
    at /usr/src/php/5.2/Zend/zend_execute_API.c:414
#25 0x082ec243 in _zval_ptr_dtor_wrapper (zval_ptr=0x84713f8) at
/usr/src/php/5.2/Zend/zend_variables.c:175
#26 0x082f7a0c in zend_hash_destroy (ht=0x8472c54) at
/usr/src/php/5.2/Zend/zend_hash.c:526
#27 0x082ebf43 in _zval_dtor_func (zvalue=0x8470f28,
__zend_filename=0x8425998 "/usr/src/php/5.2/Zend/zend_variables.h",
__zend_lineno=35) at /usr/src/php/5.2/Zend/zend_variables.c:43
#28 0x082e0067 in _zval_dtor (zvalue=0x8470f28, __zend_filename=0x842593c
"/usr/src/php/5.2/Zend/zend_execute_API.c", __zend_lineno=414) at
zend_variables.h:35
#29 0x082e0220 in _zval_ptr_dtor (zval_ptr=0x8472c00,
__zend_filename=0x84269a4 "/usr/src/php/5.2/Zend/zend_variables.c",
__zend_lineno=175)
    at /usr/src/php/5.2/Zend/zend_execute_API.c:414
#30 0x082ec243 in _zval_ptr_dtor_wrapper (zval_ptr=0x8472c00) at
/usr/src/php/5.2/Zend/zend_variables.c:175
#31 0x082f7a0c in zend_hash_destroy (ht=0x84711ac) at
/usr/src/php/5.2/Zend/zend_hash.c:526
#32 0x0830857b in zend_object_std_dtor (object=0x8472688) at
/usr/src/php/5.2/Zend/zend_objects.c:45
#33 0x083088b1 in zend_objects_free_object_storage (object=0x8472688) at
/usr/src/php/5.2/Zend/zend_objects.c:122
#34 0x0830bb55 in zend_objects_store_free_object_storage
(objects=0x845daf8) at /usr/src/php/5.2/Zend/zend_objects_API.c:89
#35 0x082dff29 in shutdown_executor () at
/usr/src/php/5.2/Zend/zend_execute_API.c:299
#36 0x082ed632 in zend_deactivate () at /usr/src/php/5.2/Zend/zend.c:860
#37 0x082a4be8 in php_request_shutdown (dummy=0x0) at
/usr/src/php/5.2/main/main.c:1317
#38 0x08354cc7 in main (argc=3, argv=0xbfbfebc0) at
/usr/src/php/5.2/sapi/cli/php_cli.c:1319


-- 
Edit bug report at http://bugs.php.net/?id=41421&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=41421&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=41421&r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=41421&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=41421&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=41421&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=41421&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=41421&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=41421&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=41421&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=41421&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=41421&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=41421&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=41421&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=41421&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=41421&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=41421&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=41421&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=41421&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=41421&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=41421&r=mysqlcfg

Reply via email to