Przeglądaj źródła

Fix a bug in logsuffix, if you made a logsuffix expr that only returned some of the files it would blow up

sbingner 23 lat temu
rodzic
commit
0865a0ccac
1 zmienionych plików z 15 dodań i 0 usunięć
  1. 15 0
      modules/Pisg/Parser/Logfile.pm

+ 15 - 0
modules/Pisg/Parser/Logfile.pm

@@ -143,14 +143,29 @@ sub _parse_dir
         my (@month, @day, @year);
         my (@month, @day, @year);
         for my $file (@filesarray) {
         for my $file (@filesarray) {
             $file =~ /$mreg/;
             $file =~ /$mreg/;
+            unless (defined $1) {
+                splice(@filesarray,$#month + 1, 1);
+                next;
+            }
             my $month = $1;
             my $month = $1;
             $month = lc $month;
             $month = lc $month;
             $month = $months{$month}
             $month = $months{$month}
                 if (defined $months{$month});
                 if (defined $months{$month});
             push @month, $month;
             push @month, $month;
             $file =~ /$dreg/;
             $file =~ /$dreg/;
+            unless (defined $1) {
+                splice(@filesarray,$#day + 1, 1);
+                splice(@month,$#day + 1);
+                next;
+            }
             push @day, $1;
             push @day, $1;
             $file =~ /$yreg/;
             $file =~ /$yreg/;
+            unless (defined $1) {
+                splice(@filesarray,$#year + 1, 1);
+                splice(@month,$#year + 1);
+                splice(@day,$#year + 1);
+                next;
+            }
             push @year, $1;
             push @year, $1;
         }
         }
         my @newarray = @filesarray[ sort {
         my @newarray = @filesarray[ sort {