Browse Source

avformat/bethsoftvid: Fix potential memleak upon reallocation failure

The classical ptr = av_realloc(ptr, size), just with av_fast_realloc().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 5acef12061)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
release/3.2
Andreas Rheinhardt 5 years ago
parent
commit
5941c8fa05
1 changed files with 7 additions and 3 deletions
  1. +7
    -3
      libavformat/bethsoftvid.c

+ 7
- 3
libavformat/bethsoftvid.c View File

@@ -146,9 +146,13 @@ static int read_frame(BVID_DemuxContext *vid, AVIOContext *pb, AVPacket *pkt,
}

do{
vidbuf_start = av_fast_realloc(vidbuf_start, &vidbuf_capacity, vidbuf_nbytes + BUFFER_PADDING_SIZE);
if(!vidbuf_start)
return AVERROR(ENOMEM);
uint8_t *tmp = av_fast_realloc(vidbuf_start, &vidbuf_capacity,
vidbuf_nbytes + BUFFER_PADDING_SIZE);
if (!tmp) {
ret = AVERROR(ENOMEM);
goto fail;
}
vidbuf_start = tmp;

code = avio_r8(pb);
vidbuf_start[vidbuf_nbytes++] = code;


Loading…
Cancel
Save