Merge "Perform input validation for file $page at some strategic locations"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 26 Jun 2017 06:55:16 +0000 (06:55 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 26 Jun 2017 06:55:16 +0000 (06:55 +0000)
1  2 
includes/filerepo/file/LocalFile.php

@@@ -716,6 -716,11 +716,11 @@@ class LocalFile extends File 
         * @return int
         */
        public function getWidth( $page = 1 ) {
+               $page = (int)$page;
+               if ( $page < 1 ) {
+                       $page = 1;
+               }
                $this->load();
  
                if ( $this->isMultipage() ) {
         * @return int
         */
        public function getHeight( $page = 1 ) {
+               $page = (int)$page;
+               if ( $page < 1 ) {
+                       $page = 1;
+               }
                $this->load();
  
                if ( $this->isMultipage() ) {
                $options = [];
                $handler = MediaHandler::getHandler( $props['mime'] );
                if ( $handler ) {
 -                      $options['headers'] = $handler->getStreamHeaders( $props['metadata'] );
 +                      $metadata = MediaWiki\quietCall( 'unserialize', $props['metadata'] );
 +
 +                      if ( !is_array( $metadata ) ) {
 +                              $metadata = [];
 +                      }
 +
 +                      $options['headers'] = $handler->getContentHeaders( $metadata );
                } else {
                        $options['headers'] = [];
                }