#44683 [Opn->Asn]: popen with modes such as "e" or "er" cause php.exe to crash

From: Date: Wed, 21 Jan 2009 19:29:00 +0000
Subject: #44683 [Opn->Asn]: popen with modes such as "e" or "er" cause php.exe to crash
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-133123@lists.php.net to get a copy of this message
 ID:               44683
 Updated by:       jani@php.net
 Reported By:      d_kelsey at uk dot ibm dot com
-Status:           Open
+Status:           Assigned
 Bug Type:         Reproducible crash
-Operating System: Windows XP
+Operating System: win32 only - Windows XP
 PHP Version:      5.2.8
 Assigned To:      pajoye


Previous Comments:
------------------------------------------------------------------------

[2009-01-19 17:51:32] d_kelsey at uk dot ibm dot com

This is still a problem in php528. The crash looks like it is due to a
bug in the Microsoft C runtime library when calling _fdopen and the type
being passed to it is "e".

I think popen_ex in tsrm_win32.c should check that the first byte is
either "w" or "r" and if not raise a php warning "invalid argument".
Then it should check if the 2nd byte is present and if so it should only
allow "b" or "t" anything else should also raise a php warning "invalid
argument". This should then bring php.net on windows in line with what
happens on php.net for linux.

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

[2008-11-04 19:19:08] pajoye@php.net

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/

I can't reproduce it locally, can you try again with the new snaps
please?

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

[2008-04-18 12:51:46] d_kelsey at uk dot ibm dot com

fails on latest snapshot. Backtrace is

>	ntdll.dll!7c9010f3() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for
ntdll.dll]	
 	msvcrt.dll!77c3b974() 	
 	msvcrt.dll!77c3eb23() 	
 	msvcrt.dll!77c3eb13() 	
 	msvcrt.dll!77c2e556() 	
 	php5ts.dll!popen_ex(const char * command=0x0122c9c0, const char *
type=0x0122db18, const char * cwd=0x00301cc0, char * env=0x00000000) 
Line 239	C
 	php5ts.dll!virtual_popen(const char * command=0x0122c9c0, const char
* type=0x0122db18, void * * * tsrm_ls=0x00301c80)  Line 1172 + 0x24
bytes	C
 	php5ts.dll!zif_popen(int ht=19015924, _zval_struct *
return_value=0x0122c9f0, _zval_struct * * return_value_ptr=0x00000000,
_zval_struct * this_ptr=0x00000000, int return_value_used=1, void * * *
tsrm_ls=0x00301c80)  Line 986 + 0x10 bytes	C
 	php5ts.dll!zend_do_fcall_common_helper_SPEC(_zend_execute_data *
execute_data=0x00c0fbd0, void * * * tsrm_ls=0x00301c80)  Line 200 + 0x3d
bytes	C
 	php5ts.dll!ZEND_DO_FCALL_SPEC_CONST_HANDLER(_zend_execute_data *
execute_data=0x00000000, void * * * tsrm_ls=0x00301c80)  Line 1679 + 0xe
bytes	C
 	php5ts.dll!execute(_zend_op_array * op_array=0x00000008, void * * *
tsrm_ls=0x00301c80)  Line 92 + 0xc bytes	C
 	php5ts.dll!php_execute_script(_zend_file_handle *
primary_file=0x00c0fec8, void * * * tsrm_ls=0x00301c80)  Line 2005 +
0x12 bytes	C
 	php.exe!main(int argc=2, char * * argv=0x00301cf0)  Line 1141	C
 	php.exe!_mainCRTStartup()  + 0xe3 bytes	
 	kernel32.dll!7c816fd7()

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

[2008-04-12 01:19:32] jani@php.net

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi

And if it stil crashes, provide a backtrace. 

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

[2008-04-10 11:58:45] d_kelsey at uk dot ibm dot com

opps, looks like modes supplemented with b should also work on linux.

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/44683

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



Thread (14 messages)

« previous php.bugs (#133123) next »