[3/3] matroskadec: allow flavor 0 files to contain RealAudio streams

Message ID 1509588617-25299-3-git-send-email-gseanmcg@gmail.com
State New
Headers show

Commit Message

Sean McGovern Nov. 2, 2017, 2:10 a.m.
Regression since 569d18aa9dc989c37bb4d4b968026fe5afa6fff9.

Bug-Id: 1055
Cc: libav-stable@libav.org
---
 libavformat/matroskadec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sean McGovern Nov. 2, 2017, 10:57 a.m. | #1
Hi,

On Nov 2, 2017 02:50, "Martin Storsjö" <martin@martin.st> wrote:

On Wed, 1 Nov 2017, Sean McGovern wrote:

Regression since 569d18aa9dc989c37bb4d4b968026fe5afa6fff9.
>
> Bug-Id: 1055
> Cc: libav-stable@libav.org
> ---
> libavformat/matroskadec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> index 9c523fb..bad750c 100644
> --- a/libavformat/matroskadec.c
> +++ b/libavformat/matroskadec.c
> @@ -1919,7 +1919,7 @@ static int matroska_parse_tracks(AVFormatContext *s)
>             track->audio.sub_packet_h    = avio_rb16(&b);
>             track->audio.frame_size      = avio_rb16(&b);
>             track->audio.sub_packet_size = avio_rb16(&b);
> -            if (flavor                       <= 0 ||
> +            if (flavor                       < 0 ||
>                 track->audio.coded_framesize <= 0 ||
>                 track->audio.sub_packet_h    <= 0 ||
>                 track->audio.frame_size      <= 0 ||
> --
> 2.7.4
>

Possibly ok (the commit message of the offending commit doesn't indicate
which sample it was about so I can't easily check whether that sample
needed to check for strictly flavor <= 0 or not).

// Martin
Sean McGovern Nov. 2, 2017, 8:16 p.m. | #2
Hi,

On Nov 2, 2017 07:30, "Martin Storsjö" <martin@martin.st> wrote:

On Thu, 2 Nov 2017, Sean McGovern wrote:

Hi,
>
> On Nov 2, 2017 02:50, "Martin Storsjö" <martin@martin.st> wrote:
>
> On Wed, 1 Nov 2017, Sean McGovern wrote:
>
> Regression since 569d18aa9dc989c37bb4d4b968026fe5afa6fff9.
>
>>
>> Bug-Id: 1055
>> Cc: libav-stable@libav.org
>> ---
>> libavformat/matroskadec.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
>> index 9c523fb..bad750c 100644
>> --- a/libavformat/matroskadec.c
>> +++ b/libavformat/matroskadec.c
>> @@ -1919,7 +1919,7 @@ static int matroska_parse_tracks(AVFormatContext
>> *s)
>>             track->audio.sub_packet_h    = avio_rb16(&b);
>>             track->audio.frame_size      = avio_rb16(&b);
>>             track->audio.sub_packet_size = avio_rb16(&b);
>> -            if (flavor                       <= 0 ||
>> +            if (flavor                       < 0 ||
>>                 track->audio.coded_framesize <= 0 ||
>>                 track->audio.sub_packet_h    <= 0 ||
>>                 track->audio.frame_size      <= 0 ||
>> --
>> 2.7.4
>>
>>
> Possibly ok (the commit message of the offending commit doesn't indicate
> which sample it was about so I can't easily check whether that sample
> needed to check for strictly flavor <= 0 or not).
>
> // Martin
> _______________________________________________
> libav-devel mailing list
> libav-devel@libav.org
> https://lists.libav.org/mailman/listinfo/libav-devel
>
>
> I was probably half-asleep when I wrote the commit message for this. It
> should really be something like:
>
> matroskadec: allow RealAudio/Cook/Sipro streams of flavor 0
>
> ...Or something similar (suggestions?)
>
> The sample used to fix this issue is from BZ #268 [1].
>

What I meant was; the original commit,
569d18aa9dc989c37bb4d4b968026fe5afa6fff9,
tried to fix some crash with some fuzzed input files. We should ideally
make sure those crashes stay fixed. Since I didn't write out which sample
it was about, it's not very easy to find out now which one it might have
been though, to verify we don't reopen that crash bug.


// Martin

Patch

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 9c523fb..bad750c 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1919,7 +1919,7 @@  static int matroska_parse_tracks(AVFormatContext *s)
             track->audio.sub_packet_h    = avio_rb16(&b);
             track->audio.frame_size      = avio_rb16(&b);
             track->audio.sub_packet_size = avio_rb16(&b);
-            if (flavor                       <= 0 ||
+            if (flavor                       < 0 ||
                 track->audio.coded_framesize <= 0 ||
                 track->audio.sub_packet_h    <= 0 ||
                 track->audio.frame_size      <= 0 ||