Bug 24367: Resolve warn Use of uninitialized value within [arrays]
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fri, 10 Jan 2020 08:27:39 +0000 (08:27 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 19 Feb 2020 11:22:23 +0000 (11:22 +0000)
Use of uninitialized value within @operators in string eq at /usr/share/koha/C4/Search.pm line 1362.
Use of uninitialized value within @indexes in pattern match (m//) at /usr/share/koha/C4/Search.pm line 1367.

Trivial tests added.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

C4/Search.pm

index 4ca9e01..1b5c7eb 100644 (file)
@@ -1359,12 +1359,12 @@ sub parseQuery {
         $query = '';
         for ( my $ii = 0 ; $ii <= @operands ; $ii++ ) {
             next unless $operands[$ii];
-            $query .= $operators[ $ii - 1 ] eq 'or' ? ' || ' : ' && '
+            $query .= $operators[$ii-1] && $operators[ $ii - 1 ] eq 'or' ? ' || ' : ' && '
               if ($query);
             if ( $operands[$ii] =~ /^[^"]\W*[-|_\w]*:\w.*[^"]$/ ) {
                 $query .= $operands[$ii];
             }
-            elsif ( $indexes[$ii] =~ m/su-/ ) {
+            elsif ( $indexes[$ii] && $indexes[$ii] =~ m/su-/ ) {
                 $query .= $indexes[$ii] . '(' . $operands[$ii] . ')';
             }
             else {