diff options
Diffstat (limited to 'fitz/filt_dctd.c')
-rw-r--r-- | fitz/filt_dctd.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fitz/filt_dctd.c b/fitz/filt_dctd.c index 74e7bc40..97651297 100644 --- a/fitz/filt_dctd.c +++ b/fitz/filt_dctd.c @@ -182,8 +182,18 @@ static void closedctd(fz_stream *stm) { fz_dctd *state = stm->state; + + if (setjmp(state->jb)) + { + state->chain->rp = state->chain->wp - state->cinfo.src->bytes_in_buffer; + fz_warn("jpeg error: %s", state->msg); + goto skip; + } + if (state->init) jpeg_finish_decompress(&state->cinfo); + +skip: state->chain->rp = state->chain->wp - state->cinfo.src->bytes_in_buffer; jpeg_destroy_decompress(&state->cinfo); fz_free(state->scanline); |