summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2025-01-16 02:13:43 +0100
committerSebastian Rasmussen <sebras@gmail.com>2025-01-16 02:24:21 +0100
commitf809b80c67717c152a5ad30bf06774f00da4fd2d (patch)
tree83db37bf5ada4eeafcf2b196ffed29e06a90c9d7 /src/lib
parenteb25a5ec777ff6699f4bb1187740467dcfa64dd6 (diff)
opj_jp2_read_header: Check for error after parsing header.
Consider the case where the caller has not set the p_image pointer to NULL before calling opj_read_header(). If opj_j2k_read_header_procedure() fails while obtaining the rest of the marker segment when calling opj_stream_read_data() because the data stream is too short, then opj_j2k_read_header() will never have the chance to initialize p_image, leaving it uninitialized. opj_jp2_read_header() will check the p_image value whether opj_j2k_read_header() suceeded or failed. This may be detected as an error in valgrind or ASAN. The fix is to check whether opj_j2k_read_header() suceeded before using the output argument p_image.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/jp2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lib/openjp2/jp2.c b/src/lib/openjp2/jp2.c
index 4df055a5..da506318 100644
--- a/src/lib/openjp2/jp2.c
+++ b/src/lib/openjp2/jp2.c
@@ -2873,7 +2873,7 @@ OPJ_BOOL opj_jp2_read_header(opj_stream_private_t *p_stream,
p_image,
p_manager);
- if (p_image && *p_image) {
+ if (ret && p_image && *p_image) {
/* Set Image Color Space */
if (jp2->enumcs == 16) {
(*p_image)->color_space = OPJ_CLRSPC_SRGB;