X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=thumb.php;h=2ea3f0761ff48e9c2cf8444aeffe61ff9d4a5718;hb=9720c6c41079ff49804e1171eaa09121ddeaecc5;hp=28f22fd4833094ae47df9c8b6c9cd1b4db11d6cd;hpb=554967bf4aec15b2d1388cef2ce01c028401c284;p=lhc%2Fweb%2Fwiklou.git diff --git a/thumb.php b/thumb.php index 28f22fd483..2ea3f0761f 100644 --- a/thumb.php +++ b/thumb.php @@ -252,10 +252,12 @@ function wfStreamThumb( array $params ) { try { $thumbName = $img->thumbName( $params ); if ( !strlen( $thumbName ) ) { // invalid params? - wfThumbError( 400, 'The specified thumbnail parameters are not valid.' ); - return; + throw new MediaTransformInvalidParametersException( 'Empty return from File::thumbName' ); } $thumbName2 = $img->thumbName( $params, File::THUMB_FULL_NAME ); // b/c; "long" style + } catch ( MediaTransformInvalidParametersException $e ) { + wfThumbError( 400, 'The specified thumbnail parameters are not valid: ' . $e->getMessage() ); + return; } catch ( MWException $e ) { wfThumbError( 500, $e->getHTML() ); return; @@ -303,7 +305,10 @@ function wfStreamThumb( array $params ) { // Stream the file if it exists already... $thumbPath = $img->getThumbPath( $thumbName ); if ( $img->getRepo()->fileExists( $thumbPath ) ) { - $img->getRepo()->streamFile( $thumbPath, $headers ); + $success = $img->getRepo()->streamFile( $thumbPath, $headers ); + if ( !$success ) { + wfThumbError( 500, 'Could not stream the file' ); + } return; } @@ -318,6 +323,7 @@ function wfStreamThumb( array $params ) { // Actually generate a new thumbnail list( $thumb, $errorMsg ) = wfGenerateThumbnail( $img, $params, $thumbName, $thumbPath ); + /** @var MediaTransformOutput|bool $thumb */ // Check for thumbnail generation errors... $msg = wfMessage( 'thumbnail_error' ); @@ -338,7 +344,10 @@ function wfStreamThumb( array $params ) { wfThumbError( $errorCode, $errorMsg ); } else { // Stream the file if there were no errors - $thumb->streamFile( $headers ); + $success = $thumb->streamFile( $headers ); + if ( !$success ) { + wfThumbError( 500, 'Could not stream the file' ); + } } }