summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2024-11-13 17:37:08 +0100
committerEven Rouault <even.rouault@spatialys.com>2024-11-13 17:37:22 +0100
commitc34e44120d760506b1bfee58acca505b4cab0d84 (patch)
treed5db946febc97576ae8d9abb5c006aa18a8b18a3 /src/lib
parent4ec0aca4d733a852186bbce82e58043095a372d4 (diff)
Amend fix of PR 1530 regarding m_sot_length check
The fix of 2c0823cb30a70319c704565b59f496e490a3c7f9 (#1530) broke decoding of some JPEG2000 files where Isot==0, Psot==0, TPsot==0 and TNsot==0 like the following ones from the GDAL autotest suite: autotest/gdrivers/data/jpeg2000/stefan_full_rgba_alpha_1bit.jp2 autotest/gdrivers/data/jpeg2000/3_13bit_and_1bit.jp2
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/j2k.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c
index 7dc389fa..dfa51e5f 100644
--- a/src/lib/openjp2/j2k.c
+++ b/src/lib/openjp2/j2k.c
@@ -9792,7 +9792,8 @@ OPJ_BOOL opj_j2k_read_tile_header(opj_j2k_t * p_j2k,
}
/* Why this condition? FIXME */
- if (p_j2k->m_specific_param.m_decoder.m_state & J2K_STATE_TPH) {
+ if ((p_j2k->m_specific_param.m_decoder.m_state & J2K_STATE_TPH) &&
+ p_j2k->m_specific_param.m_decoder.m_sot_length != 0) {
if (p_j2k->m_specific_param.m_decoder.m_sot_length < l_marker_size + 2) {
opj_event_msg(p_manager, EVT_ERROR,
"Sot length is less than marker size + marker ID\n");