X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fupload%2FUploadBase.php;h=4b8a562a4543fecf5c170c8e4b6ccb0b377fd7bd;hb=1aea0ce29ea898b536bb1fe03fa65081ae998f54;hp=b6ea4c86bedc54e2e41ba95385cda25d0efb1220;hpb=0b580213bfaaa2cc9d48cc55777843cb24beaf55;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/upload/UploadBase.php b/includes/upload/UploadBase.php index b6ea4c86be..4b8a562a45 100644 --- a/includes/upload/UploadBase.php +++ b/includes/upload/UploadBase.php @@ -618,9 +618,10 @@ abstract class UploadBase { // Check whether the file extension is on the unwanted list global $wgCheckFileExtensions, $wgFileExtensions; if ( $wgCheckFileExtensions ) { - if ( !$this->checkFileExtension( $this->mFinalExtension, $wgFileExtensions ) ) { + $extensions = array_unique( $wgFileExtensions ); + if ( !$this->checkFileExtension( $this->mFinalExtension, $extensions ) ) { $warnings['filetype-unwanted-type'] = array( $this->mFinalExtension, - $wgLang->commaList( $wgFileExtensions ), count( $wgFileExtensions ) ); + $wgLang->commaList( $extensions ), count( $extensions ) ); } } @@ -940,8 +941,13 @@ abstract class UploadBase { $match = $magic->isMatchingExtension( $extension, $mime ); if ( $match === null ) { - wfDebug( __METHOD__ . ": no file extension known for mime type $mime, passing file\n" ); - return true; + if ( $magic->getTypesForExtension( $extension ) !== null ) { + wfDebug( __METHOD__ . ": No extension known for $mime, but we know a mime for $extension\n" ); + return false; + } else { + wfDebug( __METHOD__ . ": no file extension known for mime type $mime, passing file\n" ); + return true; + } } elseif ( $match === true ) { wfDebug( __METHOD__ . ": mime type $mime matches extension $extension, passing file\n" );