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

[2.x] JPEG: Handle errors when saving with libjpeg #432

Merged
merged 2 commits into from
Mar 11, 2024

Conversation

smcv
Copy link
Contributor

@smcv smcv commented Mar 11, 2024

  • JPEG: Factor out the middle of IMG_SaveJPG_RW_jpeglib

    No functional change intended. We'll need to use setjmp() in this
    function in a subsequent commit, so ensure that its state doesn't
    include any local variables that are used both "above" and "below"
    the stack level at which we will call setjmp().

  • JPEG: Add error-recovery when saving with libjpeg

    Because we have set up libjpeg to use my_error_exit, we need to call
    setjmp() before the first time it might possibly call longjmp().
    Otherwise, on error we'll do a non-local goto to an uninitialized
    pointer and crash.


SDL2 version of #431, which should be merged first (but this is the version that I have actually tested). Please cherry-pick to release-2.8.x if accepted.

@smcv smcv marked this pull request as draft March 11, 2024 17:49
No functional change intended. We'll need to use setjmp() in this
function in a subsequent commit, so ensure that its state doesn't
include any local variables that are used both "above" and "below"
the stack level at which we will call setjmp().

Signed-off-by: Simon McVittie <[email protected]>
Because we have set up libjpeg to use my_error_exit, we need to call
setjmp() before the first time it might possibly call longjmp().
Otherwise, on error we'll do a non-local goto to an uninitialized
pointer and crash.

Resolves: libsdl-org#429
Signed-off-by: Simon McVittie <[email protected]>
@smcv smcv marked this pull request as ready for review March 11, 2024 19:50
@slouken slouken merged commit f587013 into libsdl-org:SDL2 Mar 11, 2024
8 checks passed
@slouken
Copy link
Collaborator

slouken commented Mar 11, 2024

Merged and cherry-picked to release-2.8.x

@smcv smcv deleted the 2.x-issue429 branch March 13, 2024 11:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants