Merge "Guard against uncountable tag values"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 28 Jul 2018 21:43:04 +0000 (21:43 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 28 Jul 2018 21:43:04 +0000 (21:43 +0000)
includes/media/Exif.php

index e4de0a1..9977f45 100644 (file)
@@ -742,12 +742,16 @@ class Exif {
                                $ecount = 1; // checking individual elements
                        }
                }
-               $count = count( $val );
-               if ( $ecount != $count ) {
-                       $this->debug( $val, __FUNCTION__, "Expected $ecount elements for $tag but got $count" );
 
-                       return false;
+               $count = 1;
+               if ( is_array( $val ) ) {
+                       $count = count( $val );
+                       if ( $ecount != $count ) {
+                               $this->debug( $val, __FUNCTION__, "Expected $ecount elements for $tag but got $count" );
+                               return false;
+                       }
                }
+               // If there are multiple values, recursively validate each of them.
                if ( $count > 1 ) {
                        foreach ( $val as $v ) {
                                if ( !$this->validate( $section, $tag, $v, true ) ) {