Bug #54291 [Asn->Csd]: Crash in spl_filesystem_object_get_path

From: Date: Sat, 19 Mar 2011 23:15:39 +0000
Subject: Bug #54291 [Asn->Csd]: Crash in spl_filesystem_object_get_path
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-159635@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=54291&edit=1

 ID:                 54291
 Updated by:         cataphract@php.net
 Reported by:        decoder-php at own-hero dot net
 Summary:            Crash in spl_filesystem_object_get_path
-Status:             Assigned
+Status:             Closed
 Type:               Bug
 Package:            Reproducible crash
 Operating System:   Linux x86-64
 PHP Version:        5.3SVN-2011-03-17 (SVN)
 Assigned To:        cataphract
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2011-03-20 00:15:06] cataphract@php.net

Automatic comment from SVN on behalf of cataphract
Revision: http://svn.php.net/viewvc/?view=revision&revision=309456
Log: - Fixed bug #54291 (Crash iterating DirectoryIterator for dir name
starting
  with \0).

------------------------------------------------------------------------
[2011-03-17 11:23:52] decoder-php at own-hero dot net

Description:
------------
The attached code crashes on PHP5.3 SVN. Since this is pretty sure only
a null-pointer deref, reporting this as public (non-security related).

Test script:
---------------
<?php
   $targetDir =
chr(0).DIRECTORY_SEPARATOR.md5('directoryIterator::getbasename');
   $dir = new DirectoryIterator($targetDir.DIRECTORY_SEPARATOR);
   while(!$dir->isFile()) {
   }
?>

Actual result:
--------------
==2043== Invalid read of size 8
==2043==    at 0x6586DB: spl_filesystem_object_get_path
(spl_directory.c:168)
==2043==    by 0x6587B0: spl_filesystem_object_get_file_name
(spl_directory.c:190)
==2043==    by 0x65BF85: zim_spl_SplFileInfo_isFile
(spl_directory.c:1163)
==2043==    by 0x7ED61F: zend_do_fcall_common_helper_SPEC
(zend_vm_execute.h:638)
==2043==    by 0x7EE50E: ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER
(zend_vm_execute.h:748)
==2043==    by 0x7EC0F3: execute (zend_vm_execute.h:410)
==2043==    by 0x7B0314: zend_execute_scripts (zend.c:1212)
==2043==    by 0x726A37: php_execute_script (main.c:2344)
==2043==    by 0x8EC455: main (php_cli.c:1136)
==2043==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==2043== 
==2043== 
==2043== Process terminating with default action of signal 11 (SIGSEGV)


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=54291&edit=1


Thread (3 messages)

« previous php.bugs (#159635) next »