Go to file
Bernard Scaife 10b6823ff7
Bug 40675: Fix SIP message corruption from embedded line endings
Patron messages containing carriage returns, line feeds, or CRLF
combinations can break SIP protocol communication since CR is used
as the SIP message terminator. This causes message parsing failures
and protocol errors in self-check systems.

The previous regex only handled single carriage returns (\r),
missing Windows CRLF (\r\n) and Unix LF (\n) sequences.

This patch normalizes all line ending variations to spaces to
prevent SIP message corruption while preserving message content.

Test plan:
1. Go to a patron record and click "Add message"
2. Select "Add message for OPAC..." from dropdown
3. In a text editor (e.g., Word), create a message with line breaks:
   "This is line one[Enter]This is line two[Enter]This is line three"
4. Copy and paste this multi-line text into the message box and save
5. Run the SIP emulator: misc/sip_cli_emulator.pl
6. Execute a patron information request for this patron
7. Before patch: Observe message breaks at line endings, corrupting
   the SIP response
8. Apply patch and restart SIP server
9. Repeat steps 5-6
10. After patch: Verify the message appears as single line with
    spaces replacing line breaks: "This is line one This is line two
    This is line three"
11. Test with different line ending types (Windows, Mac, Unix) to
    ensure all variations are handled correctly

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT] Adjusted the comment in Sip.pm
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit affa3e62fd)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 5709be47e4)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-10-16 11:51:51 +02:00
C4 Bug 40675: Fix SIP message corruption from embedded line endings 2025-10-16 11:51:51 +02:00
Koha Bug 31460: Merge item groups when merging records 2025-10-16 10:31:20 +02:00
acqui Bug 39572: Improve EDIFACT order confirmation message 2025-07-31 15:48:37 +02:00
admin Bug 39169: Automatically hide "active" and "budget period" columns on Acquisitions home page 2025-10-08 10:17:00 +02:00
api Bug 40543: Remove pickup_library.branchname embed 2025-10-10 14:11:53 +02:00
authorities Bug 36603: (QA follow-up) Resolve two conditional declarations 2024-11-08 16:42:53 +01:00
basket Bug 31224: Update instances of metadata->record 2024-11-07 16:29:23 +01:00
bin
…
bookings Bug 35574: Bookings tab from biblio details should only require manage_bookings permission 2023-12-18 15:21:04 +01:00
catalogue Bug 39485: Fix wide character in print-warn in opac-export 2025-09-29 09:55:22 +02:00
cataloguing Bug 25015: (QA follow-up) Slide together 2025-08-08 16:26:27 +02:00
circ Bug 40515: Fix regexp for cud-mark_as_lost_and_notify 2025-10-10 15:08:27 +02:00
clubs Bug 34478: Manual fix - add op clubs/templates-add-modify 2024-03-01 10:57:55 +01:00
course_reserves Bug 28762: Use Koha::Course in course-details controller 2024-07-23 16:04:05 +01:00
debian Bug 40812: Move Theke sample plugin repo to GitHub 2025-10-16 10:24:14 +02:00
docs Bug 40022: Add the 25.11 release team (squashed) 2025-07-25 16:39:02 +02:00
erm Bug 32922: Remove space in shebang 2023-02-20 09:44:06 -03:00
errors Bug 37741: Do not send cookie back from error pages 2024-08-30 12:45:45 +02:00
etc Bug 40812: Move Theke sample plugin repo to GitHub 2025-10-16 10:24:14 +02:00
ill Bug 35570: Prevent use of ILL module if deprecated FreeForm backend is installed 2024-10-31 08:05:21 +01:00
installer Bug 38906: Use SUBSTRING and LOCATE over REGEXP_REPLACE 2025-10-10 16:29:29 +02:00
koha-tmpl Bug 40585: (follow-up) Display error if no records were found 2025-10-16 11:22:02 +02:00
labels Bug 30745: (QA follow-up) tidy 2024-11-18 17:44:31 +01:00
lib Bug 35681: Use ::Bootstrap version of FromANSI 2024-05-02 16:47:39 +02:00
members Bug 38841: Check non-patron guarantor while deleting patron guarantor 2025-10-03 15:53:43 +02:00
misc Bug 39733: Remove system preference delimiter mention in misc/cronjobs/staticfines.pl 2025-10-03 15:14:13 +02:00
offline_circ Bug 34478: Changes for offline_circ 2024-03-01 10:58:34 +01:00
opac Bug 40585: Check on Biblios->find in addbybiblionumber scripts 2025-10-16 11:17:08 +02:00
patron_lists Bug 37266: [24.11.x] patron_lists/delete.pl should have CSRF protection 2025-02-24 19:30:42 +01:00
patroncards Bug 39800: Error 500 when trying to delete patron card template 2025-10-03 15:36:48 +02:00
plugins Bug 30897: Add option to disable automated restart 2024-04-11 16:53:42 +02:00
pos Bug 33478: Apply formatting to RECEIPT 2024-04-26 20:15:44 +02:00
preservation Bug 38089: (follow-up) More fixes for errors in original submission 2024-10-11 11:13:47 +02:00
recalls Bug 38089: (follow-up) More fixes for errors in original submission 2024-10-11 11:13:47 +02:00
reports Bug 39298: (QA follow-up) Add missing html filter 2025-08-08 12:19:37 +02:00
reserve Bug 38412: Display warning on biblio level 2025-09-19 14:40:19 +02:00
reviews Bug 2486: Show user comments in staff interface 2024-08-26 17:39:42 +02:00
rotating_collections Bug 31930: Ignore whitespace before and after barcodes 2025-09-17 17:20:55 +02:00
serials Bug 34971: (QA follow-up) Op is now cud-reopen 2025-08-06 10:16:37 +00:00
services
…
skel
…
suggestion Bug 36155: Improve perfs of suggestion.pl when there are many budgets 2025-09-23 14:24:16 +02:00
svc Bug 31224: Update instances of metadata->record 2024-11-07 16:29:23 +01:00
t Bug 31460: Merge item groups when merging records 2025-10-16 10:31:20 +02:00
tags Bug 38969: (QA follow-up) fix tidy 2025-04-24 18:42:32 +02:00
tools Bug 40702: Add missing "Title" header in Inventory csv export 2025-10-16 08:11:17 +02:00
virtualshelves Bug 40585: (follow-up) Display error if no records were found 2025-10-16 11:22:02 +02:00
xt Bug 40579: Add author test for CSV formula injection protection 2025-09-02 16:34:16 +01:00
.editorconfig
…
.gitignore Bug 35402: Update the OPAC and staff interface to Bootstrap 5 2024-08-23 15:58:41 +02:00
.htaccess
…
.mailmap Bug 39447: Update mailmap to reflect PTFS-Europes rename 2025-08-06 16:32:58 +02:00
.perlcriticrc
…
.perltidyrc Bug 30002: Adjust perltidy 2023-06-08 08:32:42 -03:00
.prettierrc.js Bug 38546: Set tabWidth and useTabs in prettierrc 2025-08-06 09:56:52 +00:00
.proverc.dist
…
.stylelintrc.json Bug 31528: (follow-up) A few additional rules 2022-10-03 08:23:15 -03:00
INSTALL
…
Koha.pm Bug 39618: DBRev 24.11.009.002 2025-10-06 17:36:22 +02:00
LICENSE
…
MANIFEST.SKIP
…
Makefile.PL Bug 39623: Remove "install" target's dependency on "all" target 2025-09-29 11:56:35 +02:00
README
…
README.md
…
README.robots
…
about.pl Bug 40608: (follow-up) Add warning in about page 2025-09-26 16:24:09 +02:00
app.psgi Bug 36149: Add userenv middleware to app.psgi 2024-05-14 15:04:37 -03:00
build-resources.PL Bug 32609: Use the current yarn.lock to generate node_modules 2023-02-10 11:07:57 -03:00
changelanguage.pl
…
cpanfile Bug 39857: Add new dependency Test::NoWarnings for 24.11.x 2025-05-26 11:03:03 +02:00
cypress.config.ts Revert "Bug 38770: Remove @vue/cli-service and babel" 2025-08-06 15:07:36 +00:00
eslint.config.mjs Bug 38167: Migrate ESLint config to new flat format 2025-08-06 09:57:04 +00:00
fix-perl-path.PL
…
gulpfile.js Bug 36640: (follow-up) CSS fixes for DataTables controls 2024-11-14 14:19:34 +01:00
help.pl
…
kohaversion.pl
…
mainpage.pl Bug 36064: (QA follow-up) Simplify and tidy 2024-10-25 11:09:51 +02:00
package.json Revert "Bug 38770: Remove @vue/cli-service and babel" 2025-08-06 15:07:36 +00:00
rewrite-config.PL
…
rspack.config.js Bug 37824: (QA follow-up) Fix improper handling of jQuery and DataTables libraries by marking them as externals 2024-09-16 18:41:17 +02:00
tsconfig.json Bug 32030: Move cypress to t - fix build_js/watch_js 2022-11-08 09:44:52 -03:00
webpack.config.js Bug 35919: Add record sources admin page 2024-04-26 17:06:04 +02:00
yarn.lock Bug 38149: [24.11.x] Update yarn.lock 2025-08-08 07:56:06 +02:00

README.md

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit http://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

http://koha-community.org/

Koha Logo