diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-08-23 17:50:12 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-08-23 18:06:54 +0200 |
commit | 9e477a37703318cb86d8ed1d426929235aa02b67 (patch) | |
tree | 34786dbaec7cb7623ab1981655c84e20ae48b957 /libavcodec | |
parent | 09927f3eaa93e31dd90ab8ee66dc1ad867b3365f (diff) | |
download | ffmpeg-9e477a37703318cb86d8ed1d426929235aa02b67.tar.gz |
jpeg2000: fix null pointer dereference in case of malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/jpeg2000.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/libavcodec/jpeg2000.c b/libavcodec/jpeg2000.c index 77bf34e610..36e6ff1a5a 100644 --- a/libavcodec/jpeg2000.c +++ b/libavcodec/jpeg2000.c @@ -507,17 +507,19 @@ void ff_jpeg2000_cleanup(Jpeg2000Component *comp, Jpeg2000CodingStyle *codsty) Jpeg2000ResLevel *reslevel = comp->reslevel + reslevelno; for (bandno = 0; bandno < reslevel->nbands; bandno++) { - Jpeg2000Band *band = reslevel->band + bandno; - for (precno = 0; precno < reslevel->num_precincts_x * reslevel->num_precincts_y; precno++) { - if (band->prec) { - Jpeg2000Prec *prec = band->prec + precno; - av_freep(&prec->zerobits); - av_freep(&prec->cblkincl); - av_freep(&prec->cblk); + if (reslevel->band) { + Jpeg2000Band *band = reslevel->band + bandno; + for (precno = 0; precno < reslevel->num_precincts_x * reslevel->num_precincts_y; precno++) { + if (band->prec) { + Jpeg2000Prec *prec = band->prec + precno; + av_freep(&prec->zerobits); + av_freep(&prec->cblkincl); + av_freep(&prec->cblk); + } } - } - av_freep(&band->prec); + av_freep(&band->prec); + } } av_freep(&reslevel->band); } |