avformat/mov: Free encryption data on error

Fixes memleak and Coverity issue #1439587.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3999c4b374)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2020-01-27 09:28:18 +01:00
parent 9b605dcdde
commit 7a13d99e6e

View File

@ -6308,8 +6308,10 @@ static int mov_read_pssh(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (version > 0) {
kid_count = avio_rb32(pb);
if (kid_count >= INT_MAX / sizeof(*key_ids))
return AVERROR(ENOMEM);
if (kid_count >= INT_MAX / sizeof(*key_ids)) {
ret = AVERROR(ENOMEM);
goto finish;
}
for (unsigned int i = 0; i < kid_count && !pb->eof_reached; i++) {
unsigned int min_kid_count = FFMIN(FFMAX(i + 1, 1024), kid_count);