From 9536268e4415ff65098059b84a8c7df752229067 Mon Sep 17 00:00:00 2001
From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Date: Wed, 28 Jun 2023 14:14:51 +0000
Subject: [PATCH] Bug 34146: Do not allow multiple copies to crash server
Content-Type: text/plain; charset=utf-8

Currently hardcoded to 1000.
Can be refined later. Let's first prevent this kind of accidents.

Test plan:
Add additem.pl. Edit the 1000 to 2. Restart all.
Add 3 multiple copies. Notice that you got 2.
Revert your code change.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
---
 cataloguing/additem.pl                                        | 4 ++--
 .../intranet-tmpl/prog/en/modules/cataloguing/additem.tt      | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index 4630eec0a4..e0844149fe 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -45,7 +45,7 @@ use Koha::Result::Boolean;
 
 use Encode qw( encode_utf8 );
 use List::MoreUtils qw( any uniq );
-use List::Util qw( first );
+use List::Util qw( first min );
 use MARC::File::XML;
 use MIME::Base64 qw( decode_base64url encode_base64url );
 use Storable qw( freeze thaw );
@@ -238,7 +238,7 @@ if ($op eq "additem") {
     my $add_duplicate_submit       = $input->param('add_duplicate_submit');
     my $add_multiple_copies_submit = $input->param('add_multiple_copies_submit');
     my $save_as_template_submit    = $input->param('save_as_template_submit');
-    my $number_of_copies           = $input->param('number_of_copies');
+    my $number_of_copies           = min( $input->param('number_of_copies'), 2 ); # TODO refine hardcoded maximum?
 
     my @columns = Koha::Items->columns;
     my $item = Koha::Item->new;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
index 2401c4f3fb..4c349b37db 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
@@ -286,7 +286,7 @@
         <label for="number_of_copies">Number of copies of this item to add: </label>
         <input type="text" id="number_of_copies" name="number_of_copies" value="" size="2" />
         <input type="submit" id="add_multiple_copies_submit" name="add_multiple_copies_submit" value="Add" onclick="javascript:return Check(this.form) && CheckMultipleAdd(this.form.number_of_copies.value);" /> <a href="#" id="cancel_add_multiple" class="cancel">Cancel</a>
-        <div class="hint"><p>The barcode you enter will be incremented for each additional item.</p></div>
+        <div class="hint"><p>Maximum currently set to 1000. The barcode you enter will be incremented for each additional item.</p></div>
     </fieldset>
 
     <span id="savetemplate">
-- 
2.30.2