summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/jvdec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavformat/jvdec.c b/libavformat/jvdec.c
index 18c81f0de7..17ada7b0f1 100644
--- a/libavformat/jvdec.c
+++ b/libavformat/jvdec.c
@@ -113,9 +113,10 @@ static int read_header(AVFormatContext *s)
return AVERROR(ENOMEM);
jv->frames = av_malloc(ast->nb_index_entries * sizeof(JVFrame));
- if (!jv->frames)
+ if (!jv->frames) {
+ av_freep(&ast->index_entries);
return AVERROR(ENOMEM);
-
+ }
offset = 0x68 + ast->nb_index_entries * 16;
for (i = 0; i < ast->nb_index_entries; i++) {
AVIndexEntry *e = ast->index_entries + i;
@@ -137,6 +138,8 @@ static int read_header(AVFormatContext *s)
- jvf->palette_size < 0) {
if (s->error_recognition & AV_EF_EXPLODE) {
read_close(s);
+ av_freep(&jv->frames);
+ av_freep(&ast->index_entries);
return AVERROR_INVALIDDATA;
}
jvf->audio_size =