Koha-clms/C4/SIP
Kyle M Hall a43ab3ca9b Bug 25903: Sending a SIP patron information request with a summary field flag in indexes 6-9 will crash server
The 'summary' field in the patron information request specifies if detail information should be send for holds,
overdues, fines, etc. The field is 10 characters in length (0-9). However, the SIP2 spec only defines indexes 0
though 5, leave 6 though 9 undefined. Some ILSs specify behavior for these undefined indexes. Apparently the
7th field is often used to request 'Fees', as opposed to 'Fines' in some ILS. Some software that integrate via
SIP try both the 5th and 7th indexes to ensure they get all fines and fees.

The problem is that Koha's SIP server crashes if any 'summary' index beyond 5 is flagged. We should simply
ignore flags beyond 5 and act as if no flags were sent.

Test Plan:
1) Enable SIP for your instance
2) Send a patron information request with a summary flag in any index beyond 5.
   i.e.: 6300120200617    124846      Y   AOMIDAY|AA21030050054321
3) Note the SIP server just closes the connection without a response
4) Apply this patch
5) Restart the SIP server
6) Send the same request
7) Note you get back the patron information response!

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jeff Gaines <jgaine@arlingtonva.us>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit fd4dbba7fb)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b870bac520)

Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
2020-09-09 21:24:20 +12:00
..
ILS Bug 25805: Return empty strings instead of undef in C4::SIP::ILS::Item::hold_patron_name 2020-07-16 16:04:21 +12:00
Sip Bug 25903: Sending a SIP patron information request with a summary field flag in indexes 6-9 will crash server 2020-09-09 21:24:20 +12:00
t Bug 18432 : Follow up - Updating to use they/them 2017-04-21 10:56:43 -04:00
ILS.pm Bug 23403: Catch other cases of ->{patron} 2020-05-21 20:38:45 +00:00
ILS.pod Bug 13506 [QA Follouwp] - Fix POD 2015-02-20 11:54:41 -03:00
Makefile bug 3435: SIP2 - 3M extension for SmartChute checkin. 2009-07-30 11:06:53 -04:00
README bug 2509: fix file permissions 2008-08-21 18:55:02 -05:00
SIPServer.pm Bug 23640: Flushing L1 on every SIP connection 2020-03-05 00:14:54 +00:00
Sip.pm Bug 20816: [19.11.x] Add ability to define custom templated fields in SIP patron responses 2020-05-11 19:09:47 +00:00
acstest.py adding openncip / opensip SIP2 service 2007-11-06 06:32:53 -06:00
example_institution_dump.sh Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
interactive_item_dump.pl Bug 17196: Move marcxml out of the biblioitems table 2017-01-13 13:49:26 +00:00
interactive_patron_check_password.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
interactive_patron_dump.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
interactive_renew_all_dump.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
test.txt updating ILS::Patron for Koha. 2007-11-06 06:32:55 -06:00
xmlparse.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00

README

README for Open NSIP 3M-SIP Server

DEPENDENCIES

SIPServer is written entirely in Perl, but it require these CPAN
perl modules to run:

     Net::Server - The SIP server is a Net::Server::Prefork server
     XML::LibXML
     XML::Parser
     XML::Simple - for parsing the config file
     UNIVERSAL::require - for loading the correct ILS interface module
     Clone - for running the test cases

LOGGING

SIPServer uses syslog() for status and debugging messages.  All
syslog messages are logged using the syslog facility 'local6'.
If you need to change this, because something else on your system
is already using that facililty, just change the definition of
'LOG_SIP' at the top of the file SIPServer.pm

Make sure to update your syslog configuration to capture facility
'local6' and record it.