From 97a3f03970e1aa8d3eba5e5502f092202e43349b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 4 May 2016 20:20:51 +0100 Subject: [PATCH] Bug 16444: Make C4::Tags plack safe MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit C4::Tags use a package variable to cache the pref TagsExternalDictionary, it's not needed and not safe. There is not test plan, just make sure the changes are consistent. Signed-off-by: Srdjan Signed-off-by: Marcel de Rooy Signed-off-by: Brendan Gallagher (cherry picked from commit fff754a7fc7a99dad6a35129b8a7dd170684f2bf) Signed-off-by: Frédéric Demians --- C4/Tags.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/Tags.pm b/C4/Tags.pm index 09afd78383..33d77d40fb 100644 --- a/C4/Tags.pm +++ b/C4/Tags.pm @@ -30,7 +30,6 @@ use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language d use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM tags_all\n"; use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); -our $ext_dict; BEGIN { @ISA = qw(Exporter); @@ -50,7 +49,7 @@ BEGIN { stratify_tags ); # %EXPORT_TAGS = (); - $ext_dict = C4::Context->preference('TagsExternalDictionary'); + my $ext_dict = C4::Context->preference('TagsExternalDictionary'); if ($debug) { require Data::Dumper; import Data::Dumper qw(:DEFAULT); @@ -69,6 +68,7 @@ More verose debugging messages are sent in the presence of non-zero $ENV{"DEBUG" =cut INIT { + my $ext_dict = C4::Context->preference('TagsExternalDictionary'); $ext_dict and $Lingua::Ispell::path = $ext_dict; $debug and print STDERR "\$Lingua::Ispell::path = $Lingua::Ispell::path\n"; } @@ -367,6 +367,7 @@ sub is_approved { my $term = shift or return; my $sth = C4::Context->dbh->prepare("SELECT approved FROM tags_approval WHERE term = ?"); $sth->execute($term); + my $ext_dict = C4::Context->preference('TagsExternalDictionary'); unless ($sth->rows) { $ext_dict and return (spellcheck($term) ? 0 : 1); # spellcheck returns empty on OK word return 0; @@ -390,6 +391,7 @@ sub get_tag_index { sub whitelist { my $operator = shift; defined $operator or return; # have to test defined to allow =0 (kohaadmin) + my $ext_dict = C4::Context->preference('TagsExternalDictionary'); if ($ext_dict) { foreach (@_) { spellcheck($_) or next; -- 2.39.5