diff mbox series

[FFmpeg-devel,1/2] avformat/matroskadec: Check desc_bytes

Message ID 20220205195304.14816-1-michael@niedermayer.cc
State New
Headers show
Series [FFmpeg-devel,1/2] avformat/matroskadec: Check desc_bytes | expand

Checks

Context Check Description
andriy/make_fate_x86 success Make fate finished
andriy/make_x86 warning New warnings during build
andriy/make_fate_ppc success Make fate finished
andriy/make_ppc warning New warnings during build

Commit Message

Michael Niedermayer Feb. 5, 2022, 7:53 p.m. UTC
Fixes: Division by 0
Fixes: 44035/clusterfuzz-testcase-minimized-ffmpeg_dem_WEBM_DASH_MANIFEST_fuzzer-4826721386364928

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavformat/matroskadec.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Andreas Rheinhardt Feb. 5, 2022, 9:57 p.m. UTC | #1
Michael Niedermayer:
> Fixes: Division by 0
> Fixes: 44035/clusterfuzz-testcase-minimized-ffmpeg_dem_WEBM_DASH_MANIFEST_fuzzer-4826721386364928
> 
> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavformat/matroskadec.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> index 5a9acfb247..f433391a16 100644
> --- a/libavformat/matroskadec.c
> +++ b/libavformat/matroskadec.c
> @@ -4216,6 +4216,8 @@ static int64_t webm_dash_manifest_compute_bandwidth(AVFormatContext *s, int64_t
>              do {
>                  int64_t desc_bytes = desc_end.end_offset - desc_beg.start_offset;
>                  int64_t desc_ns = desc_end.end_time_ns - desc_beg.start_time_ns;
> +                if (desc_bytes <= 0)
> +                    return -1;
>                  double desc_sec = desc_ns / nano_seconds_per_second;
>                  double calc_bits_per_second = (desc_bytes * 8) / desc_sec;
>  

This should give a declaration-after-statement error.

- Andreas
Andreas Rheinhardt Feb. 5, 2022, 9:58 p.m. UTC | #2
Andreas Rheinhardt:
> Michael Niedermayer:
>> Fixes: Division by 0
>> Fixes: 44035/clusterfuzz-testcase-minimized-ffmpeg_dem_WEBM_DASH_MANIFEST_fuzzer-4826721386364928
>>
>> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>> ---
>>  libavformat/matroskadec.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
>> index 5a9acfb247..f433391a16 100644
>> --- a/libavformat/matroskadec.c
>> +++ b/libavformat/matroskadec.c
>> @@ -4216,6 +4216,8 @@ static int64_t webm_dash_manifest_compute_bandwidth(AVFormatContext *s, int64_t
>>              do {
>>                  int64_t desc_bytes = desc_end.end_offset - desc_beg.start_offset;
>>                  int64_t desc_ns = desc_end.end_time_ns - desc_beg.start_time_ns;
>> +                if (desc_bytes <= 0)
>> +                    return -1;
>>                  double desc_sec = desc_ns / nano_seconds_per_second;
>>                  double calc_bits_per_second = (desc_bytes * 8) / desc_sec;
>>  
> 
> This should give a declaration-after-statement error.
> 

s/error/warning/

- Andreas
Michael Niedermayer Feb. 9, 2022, 9:43 a.m. UTC | #3
On Sat, Feb 05, 2022 at 10:58:28PM +0100, Andreas Rheinhardt wrote:
> Andreas Rheinhardt:
> > Michael Niedermayer:
> >> Fixes: Division by 0
> >> Fixes: 44035/clusterfuzz-testcase-minimized-ffmpeg_dem_WEBM_DASH_MANIFEST_fuzzer-4826721386364928
> >>
> >> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> >> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> >> ---
> >>  libavformat/matroskadec.c | 2 ++
> >>  1 file changed, 2 insertions(+)
> >>
> >> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> >> index 5a9acfb247..f433391a16 100644
> >> --- a/libavformat/matroskadec.c
> >> +++ b/libavformat/matroskadec.c
> >> @@ -4216,6 +4216,8 @@ static int64_t webm_dash_manifest_compute_bandwidth(AVFormatContext *s, int64_t
> >>              do {
> >>                  int64_t desc_bytes = desc_end.end_offset - desc_beg.start_offset;
> >>                  int64_t desc_ns = desc_end.end_time_ns - desc_beg.start_time_ns;
> >> +                if (desc_bytes <= 0)
> >> +                    return -1;
> >>                  double desc_sec = desc_ns / nano_seconds_per_second;
> >>                  double calc_bits_per_second = (desc_bytes * 8) / desc_sec;
> >>  
> > 
> > This should give a declaration-after-statement error.
> > 
> 
> s/error/warning/

will split the declaration for the double and move them up

thx

[...]
diff mbox series

Patch

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 5a9acfb247..f433391a16 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -4216,6 +4216,8 @@  static int64_t webm_dash_manifest_compute_bandwidth(AVFormatContext *s, int64_t
             do {
                 int64_t desc_bytes = desc_end.end_offset - desc_beg.start_offset;
                 int64_t desc_ns = desc_end.end_time_ns - desc_beg.start_time_ns;
+                if (desc_bytes <= 0)
+                    return -1;
                 double desc_sec = desc_ns / nano_seconds_per_second;
                 double calc_bits_per_second = (desc_bytes * 8) / desc_sec;