Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #20913: Check image resource before attempting to preserve alpha #28485

Merged
merged 1 commit into from
Aug 18, 2021

Conversation

simonspa
Copy link
Contributor

This fixes #20913 by first checking if an image resource has been properly created before attempting to set alpha/transparency. This is implemented for both GIF and PNG images.

@simonspa simonspa requested a review from kesselb August 18, 2021 05:38
Copy link
Contributor

@szaimen szaimen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apart from a small detail, LGTM

imagealphablending($this->resource, true);
imagesavealpha($this->resource, true);
} else {
$this->logger->debug('OC_Image->loadFromFile, GIF image not valid: ' . $imagePath, ['app' => 'core']);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe an info log makes more sense here and below?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say we don't log anything ;) What can an administrator (the one able to view the log) do when a user uploads a broken gif?

Copy link
Contributor

@szaimen szaimen Aug 18, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The admin could notify the affected user that a specific gif/png is broken and which one it is...
(E.g. might also happen due to file corruption)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I gather a debug log is exactly the middle between "nothing" and info? :)

I guess having a debug message makes debugging things easier, e.g. when a user asks why no previews are available for some of his images, but it's not an info message because, as @kesselb says, it's not something that calls for action.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with both; these log are useless (and sometimes less-techy admins think it's a "bad" error...), and a debug can be a compromise.

@szaimen szaimen added the 3. to review Waiting for reviews label Aug 18, 2021
@szaimen szaimen added this to the Nextcloud 23 milestone Aug 18, 2021
@juliusknorr juliusknorr merged commit bccdd32 into master Aug 18, 2021
@juliusknorr juliusknorr deleted the bugfix/20913/check-image-resource branch August 18, 2021 15:33
@simonspa
Copy link
Contributor Author

Thanks for merging @juliushaertl !

This could probably be backported also to 21 and 22?

@juliusknorr
Copy link
Member

Yes, backport makes sense 👍

@juliusknorr
Copy link
Member

/backport to stable22

@juliusknorr
Copy link
Member

/backport to stable21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3. to review Waiting for reviews
Projects
None yet
Development

Successfully merging this pull request may close these issues.

imagesavealpha() expects parameter 1 to be resource, boolean given
5 participants