From 24d26f6c735b433940c16aa6e323d9bb876029f6 Mon Sep 17 00:00:00 2001 From: Elvis Lee Date: Tue, 20 Nov 2012 09:11:35 +0900 Subject: QJpegHandler: err should be set before jpeg_create_decompress() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If ERREXIT2 is called in jpeg_create_decompress(), SIGSEGV occurs with no error message. ERREXIT2 macro uses jpeg_compress_struct.err to handle error case. Change-Id: I8517a4d6f6e6aa4c1c59cd1aaea435554cca7ac3 Reviewed-by: Jørgen Lind Reviewed-by: Konstantin Ritt --- src/gui/image/qjpeghandler.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gui/image/qjpeghandler.cpp b/src/gui/image/qjpeghandler.cpp index 286904afa5..c4e934a40a 100644 --- a/src/gui/image/qjpeghandler.cpp +++ b/src/gui/image/qjpeghandler.cpp @@ -791,12 +791,13 @@ bool QJpegHandlerPrivate::readJpegHeader(QIODevice *device) state = Error; iod_src = new my_jpeg_source_mgr(device); - jpeg_create_decompress(&info); - info.src = iod_src; info.err = jpeg_std_error(&err); err.error_exit = my_error_exit; err.output_message = my_output_message; + jpeg_create_decompress(&info); + info.src = iod_src; + if (!setjmp(err.setjmp_buffer)) { jpeg_save_markers(&info, JPEG_COM, 0xFFFF); -- cgit v1.2.3