Files
UXP/media/ffvpx/flac-alloc-failure.patch
T

26 lines
998 B
Diff

diff --git a/media/ffvpx/libavcodec/flacdec.c b/media/ffvpx/libavcodec/flacdec.c
index 3d41a1af7f..8189d6af53 100644
--- a/media/ffvpx/libavcodec/flacdec.c
+++ b/media/ffvpx/libavcodec/flacdec.c
@@ -146,8 +146,10 @@ static int allocate_buffers(FLACContext *s)
return buf_size;
av_fast_malloc(&s->decoded_buffer, &s->decoded_buffer_size, buf_size);
- if (!s->decoded_buffer)
+ if (!s->decoded_buffer) {
+ memset(s->decoded, 0, sizeof(s->decoded));
return AVERROR(ENOMEM);
+ }
ret = av_samples_fill_arrays((uint8_t **)s->decoded, NULL,
s->decoded_buffer,
@@ -525,7 +527,7 @@ static int decode_frame(FLACContext *s)
fi.samplerate = s->flac_stream_info.samplerate;
s->flac_stream_info.samplerate = s->avctx->sample_rate = fi.samplerate;
- if (!s->got_streaminfo) {
+ if (!s->got_streaminfo || !s->decoded_buffer) {
ret = allocate_buffers(s);
if (ret < 0)
return ret;