c1e439d7e9
avformat: Forward errors where possible
...
It is not uncommon to find code where the caller thinks to know better
what the return value should be than the callee. E.g. something like
"if (av_new_packet(pkt, size) < 0) return AVERROR(ENOMEM);". This commit
changes several instances of this to instead forward the actual error.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-12-12 19:25:33 +01:00
d965589022
lavf/vividas: check avformat_new_stream() return
...
check avformat_new_stream() return.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: Jun Zhao <barryjzhao@tencent.com >
2019-11-29 10:09:29 +08:00
ff5c8e57e7
avformat/vividas: Avoid allocation of AVIOContext
...
Put an AVIOContext whose lifetime doesn't extend beyond the function where
it is allocated on the stack instead of allocating and freeing it. This
also avoids the need to free it, which in this case fixes possible
memleaks on error.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-11-29 00:03:28 +01:00
d83002179f
avformat/vividas: Error out on audio packets in the absence of audio streams
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-11-25 00:07:07 +01:00
3e5a528bbe
avformat/vividas: Check and require 1 video stream
...
The decoder hardcodes that audio is stream_id = 1 so it does not
currently work with more or less than 1 video stream at st=0
Fixes: assertion failure
Fixes: 18602/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6259277199310848
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-11-25 00:07:07 +01:00
faea5b4462
avformat/vividas: Add EOF check in val_1 loop in track_header()
...
Fixes: Timeout (148sec -> 0.1sec)
Fixes: 18427/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5682124627116032
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-11-20 15:50:15 +01:00
114ddf6430
avformat/vividas: Fix n_sb_blocks Check
...
Fixes: signed integer overflow: 1540265776 * 2 cannot be represented in type 'int'
Fixes: 18160/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5758808818712576
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-11-09 13:46:21 +01:00
27a2f65948
avformat/vividas: Test size and packet numbers a bit more
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-09-24 17:53:39 +02:00
8e51f35f81
avformat/vividas: Check n_sb_blocks against input space
...
Fixes: OOM
Fixes: 16726/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5719320750981120
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-09-24 17:53:39 +02:00
8e8fd25272
avformat/vividas: Remove align offset which is always masked off
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-09-16 00:53:18 +02:00
08dc354ef7
avformat/vividas: remove dead assignment
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-09-16 00:53:18 +02:00
55d4e22d71
avformat/vividas: check for tiny blocks using alignment
...
Ask for a sample for these
Fixes: out of array access
Fixes: 16624/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5762455661182976
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-09-06 22:25:35 +02:00
5937f05503
avformat/vividas: Check av_xiphlacing() return value before use
...
Fixes: out of array access
Fixes: 16277/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5696629440512000
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-22 18:35:44 +02:00
1d72b5d2d5
avformat/vividas: Fix another infinite loop
...
Not found by the fuzzer
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-11 19:13:21 +02:00
52b564ef13
avformat/vividas: Fix infinite loop in header parser
...
Fixes: Timeout (Infinite -> Finite)
Fixes: 16010/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5638616102993920
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-11 19:13:21 +02:00
76133d7c8b
avformat/vividas: Fix memleak of AVIOContext in track_header()
...
Fixes: memleak
Fixes: 16127/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5649290914955264
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-05 17:54:24 +02:00
07357cd933
avformat/vividas: Check that value from ffio_read_varlen() does not overflow
...
Fixes: signed integer overflow: -1241665686 + -1340629419 cannot be represented in type 'int'
Fixes: 15922/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5692826442006528
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-03 17:44:23 +02:00
8bac648359
avformat/vividas: forward errors from track_header()
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-03 17:44:23 +02:00
c3ef24d9ba
avformat/vividas: Check buffer size before allocation
...
Fixes: out of array access
Fixes: 15365/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5716153105645568
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-03 17:44:23 +02:00
8e41675e18
avformat/vividas: Check if extradata was read successfully
...
Fixes: OOM
Fixes: 15575/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5654666781655040
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-03 17:44:23 +02:00
62d10ec35c
avformat/vividas: Fixes overflow in shift in recover_key()
...
Fixes: left shift of 133 by 24 places cannot be represented in type 'int'
Fixes: 15365/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5716153105645568
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Suggested-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de >
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-07-14 22:17:43 +02:00
e69106e70c
avformat/vividas: Check for input length in get_v()
...
Fixes: out of array read
Fixes: 15286/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5658245101780992
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-07-08 09:50:00 +02:00
d8716e3df9
avformat/vividas: check length in read_vblock()
...
Fixes: out of array access
Fixes: 15166/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5731062396747776
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-06-25 13:30:09 +02:00
01d8c72b95
avformat/vividas: reduce keybits to require half the space
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-06-21 18:28:00 +02:00
8c6c2747bc
avformat/vividas: Fix invalid shift in decode_key()
...
Fixes: left shift of 1 by 31 places cannot be represented in type 'int'
Fixes: 15118/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5740230004441088
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-06-21 18:28:00 +02:00
4d8875ec23
lavf: Constify the probe function argument.
...
Reviewed-by: Lauri Kasanen
Reviewed-by: Tomas Härdin
2019-03-21 11:42:17 +01:00
01db03f158
lavf/vividas: Support demuxing on big-endian hardware.
2018-12-28 00:20:47 +01:00
17aed996bc
lavf/vividas: Do not increase extradata_size after allocation.
...
Avoids a crash in avcodec_parameters_from_context().
2018-12-28 00:20:41 +01:00
d62cb29716
avformat/vividas: check if viv->sb_pb is not NULL
2018-12-22 13:36:36 +01:00
e9909fe194
avformat/vividas: check if size is enough big in xor_block
2018-12-22 11:14:39 +01:00
14c2f7f652
avformat/vividas: fix undefined behaviour
2018-12-22 11:14:21 +01:00
297e65c676
avformat/vividas: check if value from ffio_read_varlen() is too big
2018-12-22 11:14:21 +01:00
d06aae732c
avformat: add vividas demuxer
2018-12-20 19:32:27 +01:00