Trap Time::Local infinite loop
Tim Bunce [Fri, 5 Sep 1997 00:00:00 +0000 (00:00 +0000)]
(this is the same change as commit 160771401404fad17bea1cbac474c73580214f79, but as applied)

lib/Time/Local.pm

index d2d70da..eef412d 100644 (file)
@@ -107,7 +107,9 @@ sub cheat {
     @g = gmtime($guess);
     $year += $YearFix if $year < $epoch;
     $lastguess = "";
+    $counter = 0;
     while ($diff = $year - $g[5]) {
+       croak "Can't handle date (".join(", ",@_).")" if ++$counter > 255;
        $guess += $diff * (363 * $DAY);
        @g = gmtime($guess);
        if (($thisguess = "@g") eq $lastguess){
@@ -116,6 +118,7 @@ sub cheat {
        $lastguess = $thisguess;
     }
     while ($diff = $month - $g[4]) {
+       croak "Can't handle date (".join(", ",@_).")" if ++$counter > 255;
        $guess += $diff * (27 * $DAY);
        @g = gmtime($guess);
        if (($thisguess = "@g") eq $lastguess){