diff options
| author | Mickael Savinaud <savmickael@users.noreply.github.com> | 2011-10-20 13:18:52 +0000 |
|---|---|---|
| committer | Mickael Savinaud <savmickael@users.noreply.github.com> | 2011-10-20 13:18:52 +0000 |
| commit | b8214e260cfafa896bbc132aff13b01d05850773 (patch) | |
| tree | 571f4046d8745eb4c0730eb6345e4fa6307850f4 | |
| parent | 45d813b62ca9ab7c51e282050f9535d69b1b6d8b (diff) | |
WIP: remove memory leak about new jp2_read_marker function
| -rw-r--r-- | CHANGES | 1 | ||||
| -rw-r--r-- | libopenjpeg/j2k.c | 1 | ||||
| -rw-r--r-- | libopenjpeg/jp2.c | 22 |
3 files changed, 24 insertions, 0 deletions
@@ -6,6 +6,7 @@ What's New for OpenJPEG + : added October 20, 2011 +* [mickael] WIP: remove memory leak about new jp2_read_marker function * [mickael] WIP: remove previous commit about memory leak with ppm read function * [mickael] WIP: solve memory leak with ppm read function diff --git a/libopenjpeg/j2k.c b/libopenjpeg/j2k.c index e3e4c498..263713b7 100644 --- a/libopenjpeg/j2k.c +++ b/libopenjpeg/j2k.c @@ -7716,6 +7716,7 @@ opj_bool j2k_decode_tiles ( opj_j2k_v2_t *p_j2k, &l_go_on, p_stream, p_manager)) { + opj_free(l_current_data); return OPJ_FALSE; } diff --git a/libopenjpeg/jp2.c b/libopenjpeg/jp2.c index ed7c79f6..ee913140 100644 --- a/libopenjpeg/jp2.c +++ b/libopenjpeg/jp2.c @@ -2570,11 +2570,33 @@ void jp2_destroy(opj_jp2_v2_t *jp2) } if (jp2->color.jp2_cdef) { + if (jp2->color.jp2_cdef->info) { + opj_free(jp2->color.jp2_cdef->info); + jp2->color.jp2_cdef->info = NULL; + } + opj_free(jp2->color.jp2_cdef); jp2->color.jp2_cdef = 00; } if (jp2->color.jp2_pclr) { + if (jp2->color.jp2_pclr->cmap) { + opj_free(jp2->color.jp2_pclr->cmap); + jp2->color.jp2_pclr->cmap = NULL; + } + if (jp2->color.jp2_pclr->channel_sign) { + opj_free(jp2->color.jp2_pclr->channel_sign); + jp2->color.jp2_pclr->channel_sign = NULL; + } + if (jp2->color.jp2_pclr->channel_size) { + opj_free(jp2->color.jp2_pclr->channel_size); + jp2->color.jp2_pclr->channel_size = NULL; + } + if (jp2->color.jp2_pclr->entries) { + opj_free(jp2->color.jp2_pclr->entries); + jp2->color.jp2_pclr->entries = NULL; + } + opj_free(jp2->color.jp2_pclr); jp2->color.jp2_pclr = 00; } |
