From 79b199a8fee2a0d51d4389fcde3f5f4dd01971eb Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Tue, 23 Jun 2020 02:18:19 +0800 Subject: [PATCH] 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. --- src/lib/openjp2/t1.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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;