From 846e7e57fc9847d72da54653c06e832fb8fba6b0 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Tue, 21 Oct 2025 22:34:18 +0300 Subject: [PATCH] Bug 35423: Fix substr outside of string warning To test: Before applying patch 1. Create an authority record, fill field 400$w with "n" 2. Search for the authority you just created 3. Observe a warning has been logged "substr outside of string" 4. Apply patch 5. Refresh the search results from step 2 6. Observe no warnings have been logged Signed-off-by: Harrison Hawkins Signed-off-by: Katrin Fischer --- C4/AuthoritiesMarc.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index f0fe2c1325a..c2070f4560e 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -1080,7 +1080,7 @@ sub BuildSummary { my $type = 'seefrom'; $type = ( $marc21controlrefs{ substr $field->subfield('w'), 0, 1 } || '' ) if ( $field->subfield('w') ); if ( $type eq 'notapplicable' ) { - $type = substr $field->subfield('w'), 2, 1; + $type = substr $field->subfield('w'), 2, 1 if length( $field->subfield('w') ) > 2; $type = 'earlier' if $type && $type ne 'n'; } if ( $type eq 'subfi' ) { @@ -1103,7 +1103,7 @@ sub BuildSummary { my $type = 'seealso'; $type = ( $marc21controlrefs{ substr $field->subfield('w'), 0, 1 } || '' ) if ( $field->subfield('w') ); if ( $type eq 'notapplicable' ) { - $type = substr $field->subfield('w'), 2, 1; + $type = substr $field->subfield('w'), 2, 1 if length( $field->subfield('w') ) > 2; $type = 'earlier' if $type && $type ne 'n'; } if ( $type eq 'subfi' ) { -- 2.39.5