Bug 20564: Don't use system to unzip files
authorNick Clemens <nick@bywatersolutions.com>
Tue, 10 Jul 2018 13:48:07 +0000 (13:48 +0000)
committerFridolin Somers <fridolin.somers@biblibre.com>
Thu, 20 Sep 2018 14:10:18 +0000 (16:10 +0200)
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>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit 8b806227c130e86712e3e5bda61520447c60671d)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 0f45f3afdf67193ec849f72955b6de4fbeb17db0)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

tools/picture-upload.pl
tools/upload-cover-image.pl

index 804bd96..5f99906 100755 (executable)
@@ -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
index dd73bbb..c7abcab 100755 (executable)
@@ -105,7 +105,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 {