| Index: core/fxcodec/codec/fx_codec_progress.cpp
 | 
| diff --git a/core/fxcodec/codec/fx_codec_progress.cpp b/core/fxcodec/codec/fx_codec_progress.cpp
 | 
| index 04ca7b26c214de5951f5851fceeab456afe5dfb9..3551fc272da9e29661f26bb6df9bec6f9a1e8fb5 100644
 | 
| --- a/core/fxcodec/codec/fx_codec_progress.cpp
 | 
| +++ b/core/fxcodec/codec/fx_codec_progress.cpp
 | 
| @@ -1322,12 +1322,18 @@ FXCODEC_STATUS CCodec_ProgressiveDecoder::LoadImageInfo(
 | 
|    m_startX = m_startY = 0;
 | 
|    m_sizeX = m_sizeY = 0;
 | 
|    m_SrcPassNumber = 0;
 | 
| -  if (bSkipImageTypeCheck || (imageType != FXCODEC_IMAGE_UNKNOWN &&
 | 
| -                              DetectImageType(imageType, pAttribute))) {
 | 
| +  if (imageType != FXCODEC_IMAGE_UNKNOWN &&
 | 
| +      DetectImageType(imageType, pAttribute)) {
 | 
|      m_imagType = imageType;
 | 
|      m_status = FXCODEC_STATUS_FRAME_READY;
 | 
|      return m_status;
 | 
|    }
 | 
| +  // If we got here then the image data does not match the requested decoder.
 | 
| +  // If we're skipping the type check then bail out at this point and return
 | 
| +  // the failed status.
 | 
| +  if (bSkipImageTypeCheck)
 | 
| +    return m_status;
 | 
| +
 | 
|    for (int type = FXCODEC_IMAGE_BMP; type < FXCODEC_IMAGE_MAX; type++) {
 | 
|      if (DetectImageType((FXCODEC_IMAGE_TYPE)type, pAttribute)) {
 | 
|        m_imagType = (FXCODEC_IMAGE_TYPE)type;
 | 
| 
 |