summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2021-10-30 10:03:40 +0200
committerDaniel Friesel <derf@finalrewind.org>2021-10-30 10:03:40 +0200
commitac3c70597dfc8f19627f2e9ad109e741021690a0 (patch)
tree4befc51309578a201e876f65b3ab9fc635ee9e6d
parented0054fa50da9e4a3e08ef069b8b5bbc9709934f (diff)
Account: do not disclose denylist filename on open error
-rw-r--r--lib/Travelynx/Controller/Account.pm22
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm
index 12a059a..312cc9e 100644
--- a/lib/Travelynx/Controller/Account.pm
+++ b/lib/Travelynx/Controller/Account.pm
@@ -88,17 +88,21 @@ sub register {
if ( my $registration_denylist
= $self->app->config->{registration}->{denylist} )
{
- open( my $fh, "<", $registration_denylist )
- or die("cannot open($registration_denylist)");
- while ( my $line = <$fh> ) {
- chomp $line;
- if ( $ip eq $line ) {
- close($fh);
- $self->render( 'register', invalid => "denylist" );
- return;
+ if ( open( my $fh, "<", $registration_denylist ) ) {
+ while ( my $line = <$fh> ) {
+ chomp $line;
+ if ( $ip eq $line ) {
+ close($fh);
+ $self->render( 'register', invalid => "denylist" );
+ return;
+ }
}
+ close($fh);
+ }
+ else {
+ $self->log->error("Cannot open($registration_denylist): $!");
+ die("Cannot verify registration: $!");
}
- close($fh);
}
if ( my $error = $self->users->is_name_invalid( name => $user ) ) {