[FFmpeg-cvslog] truehd_core: Return error in case of error
Andreas Rheinhardt
git at videolan.org
Tue Jul 9 14:59:52 EEST 2019
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Sat Jul 6 16:18:01 2019 +0200| [610460a397b15993a6f469b2c50fe7a3bd4ff0a1] | committer: Paul B Mahol
truehd_core: Return error in case of error
Several checks (e.g. when the size of the input packet is too small)
simply used "goto fail", but didn't set the return value appropriately
for an error.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=610460a397b15993a6f469b2c50fe7a3bd4ff0a1
---
libavcodec/truehd_core_bsf.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/libavcodec/truehd_core_bsf.c b/libavcodec/truehd_core_bsf.c
index 83f2b16e3d..f858c2d4d5 100644
--- a/libavcodec/truehd_core_bsf.c
+++ b/libavcodec/truehd_core_bsf.c
@@ -53,8 +53,10 @@ static int truehd_core_filter(AVBSFContext *ctx, AVPacket *out)
if (ret < 0)
return ret;
- if (in->size < 4)
+ if (in->size < 4) {
+ ret = AVERROR_INVALIDDATA;
goto fail;
+ }
ret = init_get_bits(&gbc, in->data, 32);
if (ret < 0)
@@ -62,8 +64,10 @@ static int truehd_core_filter(AVBSFContext *ctx, AVPacket *out)
skip_bits(&gbc, 4);
in_size = get_bits(&gbc, 12) * 2;
- if (in_size < 4 || in_size > in->size)
+ if (in_size < 4 || in_size > in->size) {
+ ret = AVERROR_INVALIDDATA;
goto fail;
+ }
out_size = in_size;
dts = get_bits(&gbc, 16);
@@ -73,13 +77,15 @@ static int truehd_core_filter(AVBSFContext *ctx, AVPacket *out)
goto fail;
if (show_bits_long(&gbc, 32) == 0xf8726fba) {
- if ((ret = ff_mlp_read_major_sync(ctx, &s->hdr, &gbc)) != 0)
+ if ((ret = ff_mlp_read_major_sync(ctx, &s->hdr, &gbc)) < 0)
goto fail;
have_header = 1;
}
- if (s->hdr.num_substreams > MAX_SUBSTREAMS)
+ if (s->hdr.num_substreams > MAX_SUBSTREAMS) {
+ ret = AVERROR_INVALIDDATA;
goto fail;
+ }
for (i = 0; i < s->hdr.num_substreams; i++) {
for (int j = 0; j < 4; j++)
More information about the ffmpeg-cvslog
mailing list