From f595b8dc32e2325eadce6a53c3f60bc50000a05d Mon Sep 17 00:00:00 2001
From: Nick Clemens <nick@bywatersolutions.com>
Date: Tue, 10 Jul 2018 13:48:07 +0000
Subject: [PATCH] Bug 20564: Don't use system to unzip files

To test:
1 - Setup a zip file for patron images and cover images
2 - Test each tool
3 - Get a '500 error' after upload (note images do upload and attach)
4 - Apply patch
5 - Restart all the things
6 - Test agtain, uploads should complete and results display

Signed-off-by: George Williams <george@nekls.org>
---
 tools/picture-upload.pl     | 4 +++-
 tools/upload-cover-image.pl | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/picture-upload.pl b/tools/picture-upload.pl
index 804bd96b92..5f99906d6d 100755
--- a/tools/picture-upload.pl
+++ b/tools/picture-upload.pl
@@ -115,7 +115,9 @@ if ( ( $op eq 'Upload' ) && $uploadfile ) {
     }
     close $tfh;
     if ( $filetype eq 'zip' ) {
-        unless ( system( "unzip", $tempfile, '-d', $dirname ) == 0 ) {
+        qx/unzip $tempfile -d $dirname/;
+        my $exit_code = $?;
+        unless ( $exit_code == 0 ) {
             $errors{'UZIPFAIL'} = $uploadfilename;
             $template->param( ERRORS => [ \%errors ] );
             # This error is fatal to the import, so bail out here
diff --git a/tools/upload-cover-image.pl b/tools/upload-cover-image.pl
index 009c890d0d..ff89afb1d6 100755
--- a/tools/upload-cover-image.pl
+++ b/tools/upload-cover-image.pl
@@ -104,7 +104,9 @@ if ($fileID) {
     else {
         my $filename = $upload->full_path;
         my $dirname = File::Temp::tempdir( CLEANUP => 1 );
-        unless ( system( "unzip", $filename, '-d', $dirname ) == 0 ) {
+        qx/unzip $filename -d $dirname/;
+        my $exit_code = $?;
+        unless ( $exit_code == 0 ) {
             $error = 'UZIPFAIL';
         }
         else {
-- 
2.11.0