php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #57735 Segfault on non-existant file
Submitted: 2007-07-06 14:48 UTC Modified: 2017-10-24 09:09 UTC
From: cstdenis@php.net Assigned:
Status: Suspended Package: perl (PECL)
PHP Version: 5.2.1 OS: FreeBSD 6.2
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: cstdenis@php.net
New email:
PHP Version: OS:

 

 [2007-07-06 14:48 UTC] cstdenis@php.net
Description:
------------
I'm actually using php 5.2.3 but the list only goes up to 5.2.1. Also using perl 5.8.8 from ports with all perl modules also from ports.

Extension compiled as a shared object. No other shared Extensions loaded.

Configure line is the standard php ports one: 
'./configure' '--enable-versioning' '--with-layout=GNU' '--with-config-file-scan-dir=/usr/local/etc/php' '--disable-all' '--enable-libxml' '--with-libxml-dir=/usr/local' '--enable-reflection' '--program-prefix=' '--disable-cgi' '--with-apxs2=/usr/local/sbin/apxs' '--with-regex=php' '--with-zend-vm=CALL' '--prefix=/usr/local'


When trying to create a perl object of class DNS::ZoneParse if  a filename that does not exist, php segfaults.


Reproduce code:
---------------
<?php
    #If some_file.zone exists it works. If not, it segfaults.

    $zone_file = 'some_file.zone';

    $perl = new Perl();
    $perl->eval('use DNS::ZoneParse;');

    global $zone_file;
    $zone = new Perl('DNS::ZoneParse', 'new', $zone_file);
?>

Expected result:
----------------
Perl exception raised by class or an empty zone created or other graceful failure.

Actual result:
--------------
Segmentation fault (core dumped)

drs# gdb /usr/local/bin/php php.core
GNU gdb 6.1.1 [FreeBSD]
<snip copyright>
Core was generated by `php'.
Program terminated with signal 11, Segmentation fault.
<snip symbols>
#0  0x28822125 in php_perl_get_class_name () from /usr/local/lib/php/20060613/perl.so
(gdb) bt
#0  0x28822125 in php_perl_get_class_name () from /usr/local/lib/php/20060613/perl.so
#1  0x0814e4c0 in zend_get_object_classname ()
#2  0x0815d808 in zend_fetch_debug_backtrace ()
#3  0x08160604 in zend_default_exception_new_ex ()
#4  0x081606a6 in zend_default_exception_new ()
#5  0x0815014b in _object_and_properties_init ()
#6  0x08150182 in _object_init_ex ()
#7  0x08161b26 in zend_throw_exception ()
#8  0x08161bd7 in zend_throw_exception_ex ()
#9  0x28821a18 in php_perl_constructor_handler () from /usr/local/lib/php/20060613/perl.so
#10 0x08169a4a in zend_do_fcall_common_helper_SPEC ()
#11 0x08169ee8 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#12 0x08169075 in execute ()
#13 0x0814ddf0 in zend_execute_scripts ()
#14 0x0810cd70 in php_execute_script ()
#15 0x081d449b in main ()

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-10-24 09:09 UTC] kalle@php.net
-Status: Open +Status: Suspended
 [2017-10-24 09:09 UTC] kalle@php.net
The perl package has had no activity for at least 4 years, so I'm gonna consider it dead. If a new maintainer decides to pick this back up, he/she can re-open the report
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Feb 05 20:01:30 2025 UTC