From e99da818f0f389e51585f88e40f104e56c4685a0 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 13 Jun 2016 23:35:25 +0200 Subject: db-iris: Add input validation for --date and --time DateTime also validates these parameters, but forwarding its exceptions to the user isn't exactly user friendly --- bin/db-iris | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/bin/db-iris b/bin/db-iris index 81c8081..d49b313 100755 --- a/bin/db-iris +++ b/bin/db-iris @@ -69,7 +69,18 @@ if ($track_via) { } if ($date) { - my ( $day, $month, $year ) = split( qr{ [.] }ox, $date ); + my ( $day, $month, $year ) = split( qr{ [.] }x, $date ); + + if ( not( defined $day and defined $month ) + or ( $day < 1 ) + or ( $day > 31 ) + or ( $month < 1 ) + or ( $month > 12 ) ) + { + say STDERR "-d/--date: Please specify a valid date"; + exit(3); + } + $datetime->set( day => $day, month => $month, @@ -77,7 +88,20 @@ if ($date) { ); } if ($time) { - my ( $hour, $minute, $second ) = split( qr{ : }ox, $time ); + my ( $hour, $minute, $second ) = split( qr{ : }x, $time ); + + if ( not defined $hour + or not defined $minute + or ( $hour < 0 ) + or ( $hour > 23 ) + or ( $minute < 0 ) + or ( $minute > 59 ) + or ( defined $second and ( ( $second < 0 ) or ( $second > 59 ) ) ) ) + { + say STDERR "-t/--time: Please specify a valid time"; + exit(3); + } + $datetime->set( hour => $hour, minute => $minute, -- cgit v1.2.3