summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2020-06-23 02:18:19 +0800
committerSebastian Rasmussen <sebras@gmail.com>2020-06-23 03:21:31 +0800
commit79b199a8fee2a0d51d4389fcde3f5f4dd01971eb (patch)
treef02ef42ca5791dfcb972086c09685cfa4eae0baf /src/lib
parent98150d09422149305c9c8648337a744df5786fbe (diff)
openjp2: Plug memory leak when setting data as TLS fails.
Previously the Tier 1 handle was not freed when setting it as TLS failed. This fixes issue #1257.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/t1.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/openjp2/t1.c b/src/lib/openjp2/t1.c
index f47764f8..b32daeae 100644
--- a/src/lib/openjp2/t1.c
+++ b/src/lib/openjp2/t1.c
@@ -1665,7 +1665,14 @@ static void opj_t1_clbl_decode_processor(void* user_data, opj_tls_t* tls)
opj_free(job);
return;
}
- opj_tls_set(tls, OPJ_TLS_KEY_T1, t1, opj_t1_destroy_wrapper);
+ if (!opj_tls_set(tls, OPJ_TLS_KEY_T1, t1, opj_t1_destroy_wrapper)) {
+ opj_event_msg(job->p_manager, EVT_ERROR,
+ "Unable to set t1 handle as TLS\n");
+ opj_t1_destroy(t1);
+ *(job->pret) = OPJ_FALSE;
+ opj_free(job);
+ return;
+ }
}
t1->mustuse_cblkdatabuffer = job->mustuse_cblkdatabuffer;