From c11468d5c6bb1ccdc57122497d34af67bba279f5 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Mon, 20 Dec 2010 00:12:47 +0000 Subject: Handle errors occurring while closing dctd. --- fitz/filt_dctd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) 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); -- cgit v1.2.3