From cf93d673a0bcc17e26299f006da1faf00b24fe52 Mon Sep 17 00:00:00 2001 From: Andrew Nugged Date: Sun, 10 May 2020 18:18:35 +0300 Subject: [PATCH] Bug 25440: Fix for "uninitialized value in hash" warning in smart-rules.pl This warning emitted: Use of uninitialized value in hash element at /admin/smart-rules.pl line 569. that happened because we have NULLs in SQL results for 'categorycode' and 'itemtype' which later used as 'any' kind of category/item in the template, so for the template it passed this way: $rules->{ $r->{categorycode} }->{ $r->{itemtype} }->... but undef will stringify as "" to become a hash key ("Hashes are unordered collections of scalar values indexed by their associated string key" https://perldoc.perl.org/perldata.html), that's why "undef warning". To prevent warning here is the simple fix: $rules->{ $r->{categorycode} // '' }->{ $r->{itemtype} // '' }->... Signed-off-by: Martin Renvoize Signed-off-by: Jonathan Druart (cherry picked from commit b48162f1be1853a89e0ffc898bc0927edef93f95) Signed-off-by: Lucas Gass --- admin/smart-rules.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/smart-rules.pl b/admin/smart-rules.pl index 101e76d823..e8f2da4a45 100755 --- a/admin/smart-rules.pl +++ b/admin/smart-rules.pl @@ -567,7 +567,7 @@ my $definedbranch = $all_rules->count ? 1 : 0; my $rules = {}; while ( my $r = $all_rules->next ) { $r = $r->unblessed; - $rules->{ $r->{categorycode} }->{ $r->{itemtype} }->{ $r->{rule_name} } = $r->{rule_value}; + $rules->{ $r->{categorycode} // '' }->{ $r->{itemtype} // '' }->{ $r->{rule_name} } = $r->{rule_value}; } $template->param(show_branch_cat_rule_form => 1); -- 2.11.4.GIT