
vasilievvv at svn
Jul 10, 2008, 1:16 AM
Post #1 of 1
(223 views)
Permalink
|
|
SVN: [37474] trunk/phase3
|
|
Revision: 37474 Author: vasilievvv Date: 2008-07-10 08:16:58 +0000 (Thu, 10 Jul 2008) Log Message: ----------- * (bug 14772) Disallow moving images to invalid titles Modified Paths: -------------- trunk/phase3/includes/GlobalFunctions.php trunk/phase3/includes/Title.php trunk/phase3/includes/specials/SpecialUpload.php trunk/phase3/languages/messages/MessagesEn.php trunk/phase3/maintenance/language/messages.inc Modified: trunk/phase3/includes/GlobalFunctions.php =================================================================== --- trunk/phase3/includes/GlobalFunctions.php 2008-07-10 08:02:52 UTC (rev 37473) +++ trunk/phase3/includes/GlobalFunctions.php 2008-07-10 08:16:58 UTC (rev 37474) @@ -862,7 +862,10 @@ */ function wfVarDump( $var ) { global $wgOut; - $s = str_replace("\n","<br />\n", var_export( $var, true ) . "\n"); + ob_start(); + var_dump( $var ); + $s = str_replace("\n","<br />\n", ob_get_contents() . "\n"); + ob_end_clean(); if ( headers_sent() || !@is_object( $wgOut ) ) { print $s; } else { @@ -2364,3 +2367,13 @@ return md5( mt_rand( 0, 0x7fffffff ) . $salt ); } + +/** + * Replace all invalid characters with - + * @param mixed $title Filename to process + */ +function wfStripIllegalFilenameChars( $name ) { + $name = wfBaseName( $name ); + $name = preg_replace ( "/[^".Title::legalChars()."]|:/", '-', $name ); + return $name; +} Modified: trunk/phase3/includes/Title.php =================================================================== --- trunk/phase3/includes/Title.php 2008-07-10 08:02:52 UTC (rev 37473) +++ trunk/phase3/includes/Title.php 2008-07-10 08:16:58 UTC (rev 37474) @@ -2443,6 +2443,9 @@ if( $nt->getNamespace() != NS_IMAGE ) { $errors[] = array('imagenocrossnamespace'); } + if( $nt->getText() != wfStripIllegalFilenameChars( $nt->getText() ) ) { + $errors[] = array('imageinvalidfilename'); + } if( !File::checkExtensionCompatibility( $file, $nt->getDbKey() ) ) { $errors[] = array('imagetypemismatch'); } Modified: trunk/phase3/includes/specials/SpecialUpload.php =================================================================== --- trunk/phase3/includes/specials/SpecialUpload.php 2008-07-10 08:02:52 UTC (rev 37473) +++ trunk/phase3/includes/specials/SpecialUpload.php 2008-07-10 08:16:58 UTC (rev 37474) @@ -391,13 +391,17 @@ return self::BEFORE_PROCESSING; } - # Chop off any directories in the given filename + /** + * Chop off any directories in the given filename. Then + * filter out illegal characters, and try to make a legible name + * out of it. We'll strip some silently that Title would die on. + */ if( $this->mDesiredDestName ) { $basename = $this->mDesiredDestName; } else { $basename = $this->mSrcName; } - $filtered = wfBaseName( $basename ); + $filtered = wfStripIllegalFilenameChars( $basename ); /** * We'll want to blacklist against *any* 'extension', and use @@ -422,11 +426,7 @@ return self::MIN_LENGHT_PARTNAME; } - /** - * Filter out illegal characters, and try to make a legible name - * out of it. We'll strip some silently that Title would die on. - */ - $filtered = preg_replace ( "/[^".Title::legalChars()."]|:/", '-', $filtered ); + $nt = Title::makeTitleSafe( NS_IMAGE, $filtered ); if( is_null( $nt ) ) { $resultDetails = array( 'filtered' => $filtered ); Modified: trunk/phase3/languages/messages/MessagesEn.php =================================================================== --- trunk/phase3/languages/messages/MessagesEn.php 2008-07-10 08:02:52 UTC (rev 37473) +++ trunk/phase3/languages/messages/MessagesEn.php 2008-07-10 08:16:58 UTC (rev 37474) @@ -2485,6 +2485,7 @@ cannot move pages from and into that namespace.', 'imagenocrossnamespace' => 'Cannot move file to non-file namespace', 'imagetypemismatch' => 'The new file extension does not match its type', +'imageinvalidfilename' => 'Target image file name is invalid', # Export 'export' => 'Export pages', Modified: trunk/phase3/maintenance/language/messages.inc =================================================================== --- trunk/phase3/maintenance/language/messages.inc 2008-07-10 08:02:52 UTC (rev 37473) +++ trunk/phase3/maintenance/language/messages.inc 2008-07-10 08:16:58 UTC (rev 37474) @@ -1692,6 +1692,7 @@ 'immobile_namespace', 'imagenocrossnamespace', 'imagetypemismatch', + 'imageinvalidfilename', ), 'export' => array( 'export', _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS[at]lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|