diff options
author | Florian Pritz <bluewind@xinu.at> | 2018-12-31 23:47:46 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2018-12-31 23:57:14 +0100 |
commit | 98f7c65dddf0667f1a0462e08be9e6273ce658fb (patch) | |
tree | f7d8155b940af3746a70074f62c0d196ba104543 | |
parent | 36025a9ab64f0c99bb026529034cb53ca8ca77ba (diff) |
Stop making PDF thumbnails with imagemagick
Arch Linux disables PDF support in imagemagick due to security concerns.
This results in broken thumbnails for PDF files. By disabling it we just
get the normal file list which should be fine too. If necessary this
could be extended to be configurable, but I don't think doing that is
necessary.
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | application/libraries/Image/Drivers/imagemagick.php | 3 | ||||
-rw-r--r-- | application/test/tests/test_libraries_image.php | 22 |
3 files changed, 19 insertions, 8 deletions
@@ -1,6 +1,8 @@ This file lists major, incompatible or otherwise important changes, you should look at it after every update. NEXT + - Remove imagemagick PDF thumbnail support due to Arch Linux disabling it in + imagemagick due to repeated security concerns. 3.3.0 2018-09-19 - LDAP: Allow optional binding/authentication diff --git a/application/libraries/Image/Drivers/imagemagick.php b/application/libraries/Image/Drivers/imagemagick.php index 8295469eb..33e62ffe4 100644 --- a/application/libraries/Image/Drivers/imagemagick.php +++ b/application/libraries/Image/Drivers/imagemagick.php @@ -18,8 +18,7 @@ class imagemagick implements \libraries\Image\ImageDriver { $mimetype = $mimetype; $base = explode("/", $mimetype)[0]; - if ($base == "image" - || in_array($mimetype, array("application/pdf"))) { + if ($base == "image") { return 100; } diff --git a/application/test/tests/test_libraries_image.php b/application/test/tests/test_libraries_image.php index 99a963dea..d6afc64df 100644 --- a/application/test/tests/test_libraries_image.php +++ b/application/test/tests/test_libraries_image.php @@ -28,8 +28,8 @@ class test_libraries_image extends \test\Test { { $this->t->is(\libraries\Image::type_supported('image/png'), true, 'image/png should be supported'); $this->t->is(\libraries\Image::type_supported('image/jpeg'), true, 'image/jpeg should be supported'); - $this->t->is(\libraries\Image::type_supported('application/pdf'), true, 'application/pdf should be supported'); + $this->t->is(\libraries\Image::type_supported('application/pdf'), false, 'application/pdf should not be supported'); $this->t->is(\libraries\Image::type_supported('application/octet-stream'), false, 'application/octet-stream should not be supported'); $this->t->is(\libraries\Image::type_supported('text/plain'), false, 'text/plain should not be supported'); } @@ -45,11 +45,21 @@ class test_libraries_image extends \test\Test { public function test_makeThumb_PDF() { - $img = new \libraries\Image(FCPATH."/data/tests/simple.pdf"); - $img->makeThumb(150, 150); - $thumb = $img->get(IMAGETYPE_JPEG); - - $this->t->ok($thumb !== "", "Got thumbnail"); + try { + $img = new \libraries\Image(FCPATH."/data/tests/simple.pdf"); + $this->t->fail("PDF should not be supported"); + $img->makeThumb(150, 150); + $thumb = $img->get(IMAGETYPE_JPEG); + $this->t->ok($thumb !== "", "Got thumbnail"); + } catch (\exceptions\PublicApiException $e) { + $correct_error = $e->get_error_id() == "libraries/Image/unsupported-image-type"; + $this->t->ok($correct_error, "Should get exception"); + if (!$correct_error) { + // @codeCoverageIgnoreStart + throw $e; + // @codeCoverageIgnoreEnd + } + } } public function test_makeThumb_binaryFile() |