ID: 14008 Updated by: heyesr Reported By: [EMAIL PROTECTED] Old Status: Feedback Status: Open Bug Type: HTTP related Operating System: RHL 7.1 PHP Version: 4.0CVS-2001-11-10 Assigned To: sniper New Comment:
As mentioned in irc, it segfaults now when a file is uploaded that's larger than max filesize. Recompiling with --enable-debug didn't help, this output in error_log: Unknown(0) : Warning - upload_max_filesize of 2097152 bytes exceeded - file [fileupload] not saved [Tue Nov 13 17:03:56 2001] Script: '/usr/local/apache/vhtdocs/dev/test.php' --------------------------------------- zend.c(860) : Block 0x403E107D status: Beginning: Overrun (magic=0x646E657A, expected=0x7312F8DC) [Tue Nov 13 17:03:56 2001] [notice] child pid 11117 exit signal Segmentation fault (11) Backtrace produced this: (gdb) run -X Starting program: /www/bin/httpd -X Program received signal SIGSEGV, Segmentation fault. 0x40138b9c in memcpy () from /lib/i686/libc.so.6 Previous Comments: ------------------------------------------------------------------------ [2001-11-10 19:48:57] [EMAIL PROTECTED] Please try the latest CVS and let me know if this is good. Also note that errors set are stored in $php_errormsg variable if you have track_errors=on in your php.ini. It now also sets different types for the error: 2 /* Uploaded file exceeded upload_max_filesize */ 3 /* Uploaded file exceeded MAX_FILE_SIZE */ 4 /* Only partiallly uploaded */ Maybe the first 2 might be same? And we propably should have some PHP land constants for these? ------------------------------------------------------------------------ [2001-11-10 10:16:55] [EMAIL PROTECTED] I'll take care of this. --Jani ------------------------------------------------------------------------ [2001-11-10 09:42:30] [EMAIL PROTECTED] > so what do you expect? > > the file is to big, so it is rejected It would be nice to get some sort of confirmation that the file was rejected and why, instead of having to guess. > and the submit button is most likely > placed after the file input in the form > so its data comes after the file data in > the post so its behind the limit, too ... This is just plain wrong. What about other form data that comes after the file? If I'm to redirect the user back to the form because the file was too large, I don't want them to have to retype stuff unnecessarily. ------------------------------------------------------------------------ [2001-11-10 09:18:51] [EMAIL PROTECTED] so what do you expect? the file is to big, so it is rejected and the submit button is most likely placed after the file input in the form so its data comes after the file data in the post so its behind the limit, too ... ------------------------------------------------------------------------ [2001-11-10 09:12:47] [EMAIL PROTECTED] Version is 4.2.0-dev. When using the following script: <?php print_r($_POST); print_r($_FILES); if($_POST['submit']){ exit; }else{ ?> <FORM ACTION="test.php" METHOd="POST" ENCTYPE="multipart/form-data"> <INPUT TYPE="HIDDEN" NAME="hidden" VALUE="blah"> <INPUT TYPE="FILE" NAME="fileupload"> <INPUT TYPE="SUBMIT" NAME="submit"> </FORM> <?php } ?> If an uploaded file is smaller than the limit, then it prints the stuff as expected, however if the uploaded file is too large, then the _POST is missing information and $_FILES is completely empty. For example. If the file is ok, this is what I got printed: Array ( [hidden] => blah [submit] => Submit Query ) Array ( [fileupload] => Array ( [name] => expat-1.95.2.tar.gz [type] => application/x-gzip-compressed [tmp_name] => /tmp/phpQg7diG [size] => 190316 ) ) And if the file is larger than 2Mb, this is what's printed: Array ( [hidden] => blah ) Array ( ) ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=14008&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]