Bug 8914: Blank search that returns invalid authorities fails under Plack
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Sat, 13 Oct 2012 02:49:07 +0000 (22:49 -0400)
committerPaul Poulain <paul.poulain@biblibre.com>
Thu, 25 Oct 2012 16:41:46 +0000 (18:41 +0200)
When doing a search with no terms for the default authority type under
Plack, you will get a segfault if it returns any records that do not
have any authority type. As far as I can tell, this cannot be reproduced
under CGI/Apache.

To test:
Confirm that you don't get an error if you click the Submit button in
the authorities sections in the staff client and OPAC without entering
a term or changing the authority type.

You may or may not be able to reproduce the problem prior to applying
the patch, but that is the only situation in which I managed to trigger
it.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
C4/AuthoritiesMarc.pm

index 114e593..db340ba 100644 (file)
@@ -359,9 +359,9 @@ sub SearchAuthorities {
                     }
                 }
                 my $thisauthtype = GetAuthType(GetAuthTypeCode($authid));
+                $thisauthtype |= GetAuthType($authtypecode) if $authtypecode;
                 $newline{authtype}     = defined ($thisauthtype) ?
-                                            $thisauthtype->{'authtypetext'} :
-                                            (GetAuthType($authtypecode) ? $_->{'authtypetext'} : '');
+                                            $thisauthtype->{'authtypetext'} : '';
                 $newline{summary}      = $summary;
                 $newline{even}         = $counter % 2;
                 $newline{reported_tag} = $reported_tag;