[Koha-patches] [PATCH] Bug 16848: Prevent invalid warning to be carped from output_pref

Srdjan srdjan at catalyst.net.nz
Wed Jul 6 04:51:39 CEST 2016


From: Jonathan Druart <jonathan.druart at bugs.koha-community.org>

>From Koha::DateUtils::output_pref:

   $dt = eval { dt_from_string( $str ) } if $str;
   carp "Invalid date '$str' passed to output_pref\n" if $@;

This second line is wrong: if $str does not exist, the first line is not evaluated and $@ could be filled with previous error.

To reproduce:

Then:
  prove t/DateUtils.t
will display:
t/DateUtils.t .. 20/60 Use of uninitialized value $str in concatenation (.) or string at Koha/DateUtils.pm line 217.
Invalid date '' passed to output_pref
 at t/DateUtils.t line 233.
t/DateUtils.t .. ok
All tests successful.
Files=1, Tests=60,  2 wallclock secs ( 0.02 usr  0.00 sys +  1.40 cusr  0.00 csys =  1.42 CPU)
Result: PASS

Test plan:
Without this patch, you should not see the carp

Signed-off-by: Srdjan <srdjan at catalyst.net.nz>
---
 Koha/DateUtils.pm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm
index 6207cc1..51d3d93 100644
--- a/Koha/DateUtils.pm
+++ b/Koha/DateUtils.pm
@@ -213,8 +213,11 @@ sub output_pref {
         and return
             if $dt and $str;
 
-    $dt = eval { dt_from_string( $str ) } if $str;
-    carp "Invalid date '$str' passed to output_pref\n" if $@;
+    if ( $str ) {
+        local $@;
+        $dt = eval { dt_from_string( $str ) };
+        carp "Invalid date '$str' passed to output_pref\n" if $@;
+    }
 
     return unless defined $dt;
 
-- 
2.7.4


More information about the Koha-patches mailing list