ID: 35886 User updated by: chris at lodesys dot com Reported By: chris at lodesys dot com -Status: Feedback +Status: Open Bug Type: Streams related Operating System: win32 only PHP Version: 5CVS-2006-01-03 (snap) Assigned To: wez New Comment:
The example test file is C:/php/news.txt (part of the PHP Windows distribution). It is 74 KB (75,800 bytes). Was having problems with files larger than that (say up to 170 KB). Didn't test with extra large files. Previous Comments: ------------------------------------------------------------------------ [2006-02-08 00:50:26] [EMAIL PROTECTED] How big is the file? ------------------------------------------------------------------------ [2006-01-05 12:32:42] [EMAIL PROTECTED] Assigned to the maintainer. ------------------------------------------------------------------------ [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-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