ID:               35886
 Updated by:       [EMAIL PROTECTED]
 Reported By:      chris at lodesys dot com
-Status:           Verified
+Status:           Assigned
 Bug Type:         Reproducible crash
 Operating System: win32 only
 PHP Version:      5CVS-2006-01-03 (snap)
-Assigned To:      
+Assigned To:      wez
 New Comment:

Assigned to the maintainer.


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

[2006-01-05 02:21:26] [EMAIL PROTECTED]

OK, the problem is in the MapViewOfFile() call in
php_stdiop_set_option(), because it is mapping less data than we've
asked.
It seems a windows problem to me, but I'm leaving open because this can
be a serious bug (although I'm not able to fix it..).

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

[2006-01-05 00:26:24] [EMAIL PROTECTED]

OK, back from the school exams, the problem seems to be in
php_stdiop_set_option(), because it is allocating one less byte than it
should. (and that mmap code is specific for windows).

I'll try to investigate the problem further and produce a patch.

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

[2006-01-04 01:25:08] [EMAIL PROTECTED]

Nuno, if you can reproduce -> provide the backtrace.

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

[2006-01-04 00:11:14] [EMAIL PROTECTED]

I'm able to reproduce the crash on Windows XP.

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

[2006-01-03 20:01:56] chris at lodesys dot com

Description:
------------
This one is weird.  For some value of offset & maxlen,
file_get_contents will fail and crash PHP. (I'm running under Apache
1.3.34 and get a Dr. Watson).  The combination may have something to do
with offset + maxlen just above 4096, but even that's not consistant.

Reproduce code:
---------------
$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 500, 3596);  //
WORKS

$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 500, 3597);  //
FAILS

$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 500, 4096);  //
FAILS

$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 500, 4097);  //
WORKS


$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 1000, 4096);  //
FAILS

$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 1000, 4097);  //
WORKS

$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 0, 4096);  //
WORKS

$x = file_get_contents("C:/php/news.txt", FALSE, NULL, 0, 4097);  //
WORKS


Expected result:
----------------
All combinations of offset & maxlen should work as news.txt is 74 KB
long. 

Actual result:
--------------
PHP fails in some instances (see above) with Dr. Watson reporting
"Application exception occurred: App:  (pid=1828)[apache.exe] Exception
number: c0000005 (access violation)"

Using 


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


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

Reply via email to