? file_30520.patch ? file_30520_0.patch ? files ? sites/default/settings.php ? sites/default/themes Index: includes/file.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/file.inc,v retrieving revision 1.104 diff -u -p -r1.104 file.inc --- includes/file.inc 25 Jul 2007 17:41:27 -0000 1.104 +++ includes/file.inc 6 Sep 2007 00:34:23 -0000 @@ -491,17 +491,17 @@ function file_save_upload($source, $vali } // If a file was uploaded, process it. - if (isset($_FILES['files']) && $_FILES['files']['name'][$source] && is_uploaded_file($_FILES['files']['tmp_name'][$source])) { - // Check for file upload errors and return FALSE if a - // lower level system error occurred. + if (isset($_FILES['files']) && $_FILES['files']['name'][$source]) { + // Check for file upload errors and return FALSE if a lower level system + // error occurred. switch ($_FILES['files']['error'][$source]) { // @see http://php.net/manual/en/features.file-upload.errors.php - case UPLOAD_ERR_OK: - break; - case UPLOAD_ERR_INI_SIZE: + drupal_set_message(t("The file %file could not be saved, because it exceeds %maxsize, PHP's maximum allowed size for uploads.", array('%file' => $source, '%maxsize' => format_size(parse_size(ini_get('upload_max_filesize'))))), 'error'); + return 0; + case UPLOAD_ERR_FORM_SIZE: - drupal_set_message(t('The file %file could not be saved, because it exceeds %maxsize, the maximum allowed size for uploads.', array('%file' => $source, '%maxsize' => format_size(file_upload_max_size()))), 'error'); + drupal_set_message(t("The file %file could not be saved, because it exceeds the maximum allowed size for uploads for this form.", array('%file' => $source)), 'error'); return 0; case UPLOAD_ERR_PARTIAL: @@ -509,7 +509,14 @@ function file_save_upload($source, $vali drupal_set_message(t('The file %file could not be saved, because the upload did not complete.', array('%file' => $source)), 'error'); return 0; - // Unknown error + case UPLOAD_ERR_OK: + // Final check that this is a valid upload, if it isn't, use the + // default error handler. + if (is_uploaded_file($_FILES['files']['tmp_name'][$source])) { + break; + } + + // Unknown error. default: drupal_set_message(t('The file %file could not be saved. An unknown error has occurred.', array('%file' => $source)), 'error'); return 0;