diff options
| author | Sebastian Rasmussen <sebras@gmail.com> | 2020-06-23 02:18:19 +0800 |
|---|---|---|
| committer | Sebastian Rasmussen <sebras@gmail.com> | 2020-06-23 03:21:31 +0800 |
| commit | 79b199a8fee2a0d51d4389fcde3f5f4dd01971eb (patch) | |
| tree | f02ef42ca5791dfcb972086c09685cfa4eae0baf /src/lib | |
| parent | 98150d09422149305c9c8648337a744df5786fbe (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.c | 9 |
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; |
