Return HTTP 500 not 200 from thumb.php when streaming fails
authorGergő Tisza <gtisza@wikimedia.org>
Thu, 12 Mar 2015 22:50:19 +0000 (22:50 +0000)
committerGergő Tisza <gtisza@wikimedia.org>
Thu, 12 Mar 2015 22:50:19 +0000 (22:50 +0000)
Bug: T92545
Change-Id: Id40a8f401232cc7b9ca102a2866957f80c5ec8a3

thumb.php

index 70cd1e6..2ea3f07 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -305,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;
        }
 
@@ -320,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' );
@@ -340,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' );
+               }
        }
 }