]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix #20913: Check image resource before attempting to preserve alpha 28485/head
authorSimon Spannagel <simonspa@kth.se>
Wed, 18 Aug 2021 05:36:11 +0000 (07:36 +0200)
committerSimon Spannagel <simonspa@kth.se>
Wed, 18 Aug 2021 05:36:11 +0000 (07:36 +0200)
Signed-off-by: Simon Spannagel <simonspa@kth.se>
lib/private/legacy/OC_Image.php

index 59d517735286b4134c5e83fc90d48b140ee44934..890df2241aff3a7963dc77de030a5509b4626efc 100644 (file)
@@ -562,9 +562,13 @@ class OC_Image implements \OCP\IImage {
                        case IMAGETYPE_GIF:
                                if (imagetypes() & IMG_GIF) {
                                        $this->resource = imagecreatefromgif($imagePath);
-                                       // Preserve transparency
-                                       imagealphablending($this->resource, true);
-                                       imagesavealpha($this->resource, true);
+                                       if ($this->resource) {
+                                               // Preserve transparency
+                                               imagealphablending($this->resource, true);
+                                               imagesavealpha($this->resource, true);
+                                       } else {
+                                               $this->logger->debug('OC_Image->loadFromFile, GIF image not valid: ' . $imagePath, ['app' => 'core']);
+                                       }
                                } else {
                                        $this->logger->debug('OC_Image->loadFromFile, GIF images not supported: ' . $imagePath, ['app' => 'core']);
                                }
@@ -583,9 +587,13 @@ class OC_Image implements \OCP\IImage {
                        case IMAGETYPE_PNG:
                                if (imagetypes() & IMG_PNG) {
                                        $this->resource = @imagecreatefrompng($imagePath);
-                                       // Preserve transparency
-                                       imagealphablending($this->resource, true);
-                                       imagesavealpha($this->resource, true);
+                                       if ($this->resource) {
+                                               // Preserve transparency
+                                               imagealphablending($this->resource, true);
+                                               imagesavealpha($this->resource, true);
+                                       } else {
+                                               $this->logger->debug('OC_Image->loadFromFile, PNG image not valid: ' . $imagePath, ['app' => 'core']);
+                                       }
                                } else {
                                        $this->logger->debug('OC_Image->loadFromFile, PNG images not supported: ' . $imagePath, ['app' => 'core']);
                                }