From 03b4e682b695aa30a7eb65f7b312c519105ec938 Mon Sep 17 00:00:00 2001 From: Oliver Chang Date: Mon, 30 Nov 2015 11:08:07 -0800 Subject: Merge to M48: Add a missing setjmp() to CCodec_JpegDecoder::v_GetNextLine(). If jpeg_read_scanlines() ends up calling the error callback, we longjmp into some undefined state. BUG=558840 TBR=thestig@chromium.org,tsepez@chromium.org Original Review URL: https://codereview.chromium.org/1463563003 . (cherry picked from commit 06e33aec03f13c76d9eff5c09cb03e142b0c5ef1) Review URL: https://codereview.chromium.org/1487773002 . --- core/src/fxcodec/codec/fx_codec_jpeg.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/fxcodec/codec/fx_codec_jpeg.cpp b/core/src/fxcodec/codec/fx_codec_jpeg.cpp index 01481c37ec..89b65cfe3d 100644 --- a/core/src/fxcodec/codec/fx_codec_jpeg.cpp +++ b/core/src/fxcodec/codec/fx_codec_jpeg.cpp @@ -480,9 +480,12 @@ FX_BOOL CCodec_JpegDecoder::v_Rewind() { return TRUE; } uint8_t* CCodec_JpegDecoder::v_GetNextLine() { + if (setjmp(m_JmpBuf) == -1) + return nullptr; + int nlines = jpeg_read_scanlines(&cinfo, &m_pScanlineBuf, 1); if (nlines < 1) { - return NULL; + return nullptr; } return m_pScanlineBuf; } -- cgit v1.2.3