X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fmedia%2FSvgHandler.php;h=bdda674f0db4eb738ebd97b43562e8daaefbce3c;hb=ff3c76b87c9fa981ad56f8e08d25104b561e4939;hp=b7745df9bcc9db374c9ce70cbba00fdde7a3ddab;hpb=8022558024f5f9cf5383beb49937a75348982ca8;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/media/SvgHandler.php b/includes/media/SvgHandler.php index b7745df9bc..bdda674f0d 100644 --- a/includes/media/SvgHandler.php +++ b/includes/media/SvgHandler.php @@ -20,6 +20,8 @@ * @file * @ingroup Media */ + +use MediaWiki\Shell\Shell; use Wikimedia\ScopedCallback; /** @@ -199,20 +201,16 @@ class SvgHandler extends ImageHandler { $params['physicalWidth'] = $wgSVGMaxSize; $params['physicalHeight'] = File::scaleHeight( $srcWidth, $srcHeight, $wgSVGMaxSize ); } - } else { - if ( $params['physicalHeight'] > $wgSVGMaxSize ) { - $srcWidth = $image->getWidth( $params['page'] ); - $srcHeight = $image->getHeight( $params['page'] ); - $params['physicalWidth'] = File::scaleHeight( $srcHeight, $srcWidth, $wgSVGMaxSize ); - $params['physicalHeight'] = $wgSVGMaxSize; - } + } elseif ( $params['physicalHeight'] > $wgSVGMaxSize ) { + $srcWidth = $image->getWidth( $params['page'] ); + $srcHeight = $image->getHeight( $params['page'] ); + $params['physicalWidth'] = File::scaleHeight( $srcHeight, $srcWidth, $wgSVGMaxSize ); + $params['physicalHeight'] = $wgSVGMaxSize; } // To prevent the proliferation of thumbnails in languages not present in SVGs, unless // explicitly forced by user. - if ( isset( $params['targetlang'] ) ) { - if ( !$image->getMatchedLanguage( $params['targetlang'] ) ) { - unset( $params['targetlang'] ); - } + if ( isset( $params['targetlang'] ) && !$image->getMatchedLanguage( $params['targetlang'] ) ) { + unset( $params['targetlang'] ); } return $params; @@ -339,11 +337,11 @@ class SvgHandler extends ImageHandler { // External command $cmd = str_replace( [ '$path/', '$width', '$height', '$input', '$output' ], - [ $wgSVGConverterPath ? wfEscapeShellArg( "$wgSVGConverterPath/" ) : "", + [ $wgSVGConverterPath ? Shell::escape( "$wgSVGConverterPath/" ) : "", intval( $width ), intval( $height ), - wfEscapeShellArg( $srcPath ), - wfEscapeShellArg( $dstPath ) ], + Shell::escape( $srcPath ), + Shell::escape( $dstPath ) ], $wgSVGConverters[$wgSVGConverter] );