opj_j2k_decode_tile(): avoid 'Stream too short' error in non-strict mode
authorEven Rouault <even.rouault@spatialys.com>
Thu, 10 Feb 2022 14:49:57 +0000 (15:49 +0100)
committerEven Rouault <even.rouault@spatialys.com>
Thu, 10 Feb 2022 14:50:07 +0000 (15:50 +0100)
src/lib/openjp2/j2k.c

index e7c03ae1387099612f068c0a4881ba07e3151407..bcce3165686e3b4bbf1ea8622cd2d9b6aca9bb9c 100644 (file)
@@ -9901,10 +9901,10 @@ OPJ_BOOL opj_j2k_decode_tile(opj_j2k_t * p_j2k,
 
     if (p_j2k->m_specific_param.m_decoder.m_state != J2K_STATE_EOC) {
         if (opj_stream_read_data(p_stream, l_data, 2, p_manager) != 2) {
-            opj_event_msg(p_manager, EVT_ERROR, "Stream too short\n");
-            return OPJ_FALSE;
+            opj_event_msg(p_manager, p_j2k->m_cp.strict ? EVT_ERROR : EVT_WARNING,
+                          "Stream too short\n");
+            return p_j2k->m_cp.strict ? OPJ_FALSE : OPJ_TRUE;
         }
-
         opj_read_bytes(l_data, &l_current_marker, 2);
 
         if (l_current_marker == J2K_MS_EOC) {