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

index f1b9101045adeaed2073d8355c19d5ff51baabf2..04a88106d929caf6232c513a2ca6f527f42664d2 100644 (file)
@@ -563,9 +563,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']);
                                }
@@ -584,9 +588,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']);
                                }