From 65e8d2414fde1021bc6c9384ad4ed4f35b941cb8 Mon Sep 17 00:00:00 2001 From: Jared Camins-Esakov Date: Thu, 14 Mar 2013 08:43:13 -0400 Subject: [PATCH] Bug 9239 QA follow-up: better error handling * Fix a long-standing bug in the linker that could crash the linker when run against odd data. * Sanitize input to SimpleSearch. * Correctly handle CCL indexes with QP. --- C4/AuthoritiesMarc.pm | 1 + C4/Search.pm | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index e30c571..68dcfb4 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -1213,6 +1213,7 @@ sub GetAuthorizedHeading { unless ($record = $args->{record}) { return unless $args->{authid}; $record = GetAuthority($args->{authid}); + return unless $record; } if (C4::Context->preference('marcflavour') eq 'UNIMARC') { # construct UNIMARC summary, that is quite different from MARC21 one diff --git a/C4/Search.pm b/C4/Search.pm index dfb51da..aa69742 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -250,6 +250,7 @@ sub SimpleSearch { $query = $QParser->target_syntax($servers[$i]); $zoom_queries[$i] = new ZOOM::Query::PQF( $query, $zconns[$i]); } else { + $query =~ s/:/=/g; $zoom_queries[$i] = new ZOOM::Query::CCL2RPN( $query, $zconns[$i]); } $tmpresults[$i] = $zconns[$i]->search( $zoom_queries[$i] ); @@ -1176,7 +1177,7 @@ sub parseQuery { my $QParser; $QParser = C4::Context->queryparser if (C4::Context->preference('UseQueryParser') || $query =~ s/^qp=//); - undef $QParser if ($query =~ m/^(ccl=|pqf=|cql=)/ || grep (/\w,\w|\w=\w/, @operands) ); + undef $QParser if ($query =~ m/^(ccl=|pqf=|cql=)/ || grep (/\w,\w|\w=\w/, @operands, @indexes) ); undef $QParser if (scalar @limits > 0); if ($QParser) -- 1.7.9.5