Fix unsupported animated webp parsing

This commit is contained in:
Philipp Holzer 2022-05-21 18:44:03 +02:00
parent c4ec80e839
commit 783b05cbb1
Signed by: nupplaPhil
GPG key ID: 24A7501396EB5432

View file

@ -159,15 +159,24 @@ class Image
}
$this->valid = false;
$this->image = @imagecreatefromstring($data);
if ($this->image !== false) {
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
$this->valid = true;
imagealphablending($this->image, false);
imagesavealpha($this->image, true);
try {
$this->image = @imagecreatefromstring($data);
if ($this->image !== false) {
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
$this->valid = true;
imagealphablending($this->image, false);
imagesavealpha($this->image, true);
return true;
return true;
}
} catch (\Throwable $error) {
/** @see https://github.com/php/doc-en/commit/d09a881a8e9059d11e756ee59d75bf404d6941ed */
if (strstr($error->getMessage(), "gd-webp cannot allocate temporary buffer")) {
DI::logger()->notice('Image is probably a kind of unsupported, animated GID', ['error' => $error]);
} else {
DI::logger()->warning('Unexpected throwable.', ['error' => $error]);
}
}
return false;