diff options
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index ee94913..3d2bb0c 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -360,7 +360,10 @@ sub yearly_history {  	my @journeys;  	my $stats; -	if ( not $year =~ m{ ^ [0-9]{4} $ }x ) { +	# DateTime is very slow when looking far into the future due to DST changes +	# -> Limit time range to avoid accidental DoS. +	if ( not( $year =~ m{ ^ [0-9]{4} $ }x and $year > 1990 and $year < 2100 ) ) +	{  		@journeys = $self->get_user_travels;  	}  	else { @@ -409,7 +412,14 @@ sub monthly_history {  		qw(Januar Februar März April Mai Juni Juli August September Oktober November Dezember)  	  ); -	if ( not( $year =~ m{ ^ [0-9]{4} $ }x and $month =~ m{ ^ [0-9]{1,2} $ }x ) ) +	if ( +		not(    $year =~ m{ ^ [0-9]{4} $ }x +			and $year > 1990 +			and $year < 2100 +			and $month =~ m{ ^ [0-9]{1,2} $ }x +			and $month > 0 +			and $month < 13 ) +	  )  	{  		@journeys = $self->get_user_travels;  	}  | 
