X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fmedia%2FSVG.php;h=1bc722c5dc8472991c85c11b8e37ace1872bb0d9;hp=f3b33ace35fc45c147aa11080a6e3cbda851169a;hb=64b83bdb3afd0ee4f8fc1893a865409c198e601e;hpb=a5be382adfdad4678eec18413c6a118cb3284daf diff --git a/includes/media/SVG.php b/includes/media/SVG.php index f3b33ace35..1bc722c5dc 100644 --- a/includes/media/SVG.php +++ b/includes/media/SVG.php @@ -178,14 +178,14 @@ class SvgHandler extends ImageHandler { $metadata = $this->unpackMetadata( $image->getMetadata() ); if ( isset( $metadata['error'] ) ) { // sanity check - $err = wfMessage( 'svg-long-error', $metadata['error']['message'] )->text(); + $err = wfMessage( 'svg-long-error', $metadata['error']['message'] ); return new MediaTransformError( 'thumbnail_error', $clientWidth, $clientHeight, $err ); } if ( !wfMkdirParents( dirname( $dstPath ), null, __METHOD__ ) ) { return new MediaTransformError( 'thumbnail_error', $clientWidth, $clientHeight, - wfMessage( 'thumbnail_dest_directory' )->text() ); + wfMessage( 'thumbnail_dest_directory' ) ); } $srcPath = $image->getLocalRefPath(); @@ -196,7 +196,7 @@ class SvgHandler extends ImageHandler { return new MediaTransformError( 'thumbnail_error', $params['width'], $params['height'], - wfMessage( 'filemissing' )->text() + wfMessage( 'filemissing' ) ); } @@ -205,7 +205,17 @@ class SvgHandler extends ImageHandler { // https://git.gnome.org/browse/librsvg/commit/?id=f01aded72c38f0e18bc7ff67dee800e380251c8e $tmpDir = wfTempDir() . '/svg_' . wfRandomString( 24 ); $lnPath = "$tmpDir/" . basename( $srcPath ); - $ok = mkdir( $tmpDir, 0771 ) && symlink( $srcPath, $lnPath ); + $ok = mkdir( $tmpDir, 0771 ); + if ( !$ok ) { + wfDebugLog( 'thumbnail', + sprintf( 'Thumbnail failed on %s: could not create temporary directory %s', + wfHostname(), $tmpDir ) ); + return new MediaTransformError( 'thumbnail_error', + $params['width'], $params['height'], + wfMessage( 'thumbnail-temp-create' )->text() + ); + } + $ok = symlink( $srcPath, $lnPath ); /** @noinspection PhpUnusedLocalVariableInspection */ $cleaner = new ScopedCallback( function () use ( $tmpDir, $lnPath ) { MediaWiki\suppressWarnings(); @@ -219,7 +229,7 @@ class SvgHandler extends ImageHandler { wfHostname(), $lnPath, $srcPath ) ); return new MediaTransformError( 'thumbnail_error', $params['width'], $params['height'], - wfMessage( 'thumbnail-temp-create' )->text() + wfMessage( 'thumbnail-temp-create' ) ); }