diff options
Diffstat (limited to 'lib/Travelynx/Controller')
| -rw-r--r-- | lib/Travelynx/Controller/Account.pm | 7 | ||||
| -rwxr-xr-x | lib/Travelynx/Controller/Api.pm | 10 | 
2 files changed, 16 insertions, 1 deletions
| diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm index f7d3a75..081aa13 100644 --- a/lib/Travelynx/Controller/Account.pm +++ b/lib/Travelynx/Controller/Account.pm @@ -159,7 +159,7 @@ sub verify {  	my $id    = $self->stash('id');  	my $token = $self->stash('token'); -	if ( not $id =~ m{ ^ \d+ $ }x ) { +	if ( not $id =~ m{ ^ \d+ $ }x or $id > 2147483647 ) {  		$self->render( 'register', invalid => 'token' );  		return;  	} @@ -528,6 +528,11 @@ sub recover_password {  	my $id    = $self->stash('id');  	my $token = $self->stash('token'); +	if ( not $id =~ m{ ^ \d+ $ }x or $id > 2147483647 ) { +		$self->render( 'recover_password', invalid => 'recovery token' ); +		return; +	} +  	if ( $self->verify_password_token( $id, $token ) ) {  		$self->render('set_password');  	} diff --git a/lib/Travelynx/Controller/Api.pm b/lib/Travelynx/Controller/Api.pm index 889a0e3..b0047b9 100755 --- a/lib/Travelynx/Controller/Api.pm +++ b/lib/Travelynx/Controller/Api.pm @@ -122,6 +122,16 @@ sub get_v1 {  	}  	my $uid = $+{id};  	$api_token = $+{token}; + +	if ( $uid > 2147483647 ) { +		$self->render( +			json => { +				error => 'Malformed token', +			}, +		); +		return; +	} +  	my $token = $self->get_api_token($uid);  	if ( $api_token ne $token->{$api_action} ) {  		$self->render( | 
