summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorElvis Lee <kwangwoong.lee@lge.com>2012-11-20 09:11:35 +0900
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-21 05:21:57 +0100
commit24d26f6c735b433940c16aa6e323d9bb876029f6 (patch)
tree34c5d79ea9d1dcd5b21d8d4912ca80e6d031df63 /src/gui
parent3853035a45abb87c94314ac9f61f0c454a7f0262 (diff)
QJpegHandler: err should be set before jpeg_create_decompress()
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 <jorgen.lind@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/image/qjpeghandler.cpp5
1 files changed, 3 insertions, 2 deletions
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);