Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN
@ 2023-10-01 18:01 Michael Niedermayer
  2023-10-01 18:24 ` Kieran Kunhya
  2023-10-15 23:16 ` Michael Niedermayer
  0 siblings, 2 replies; 5+ messages in thread
From: Michael Niedermayer @ 2023-10-01 18:01 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

EAGAIN causes an assertion failure when it is returned from the decoder

Fixes: Assertion consumed != (-(11)) failed at libavcodec/decode.c:462
Fixes: assertion_IOT_instruction_decode_c_462/poc

Found-by: Hardik Shah of Vehere (Dawn Treaders team)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/h2645_parse.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/h2645_parse.h b/libavcodec/h2645_parse.h
index 787ce971ee4..128dea09efb 100644
--- a/libavcodec/h2645_parse.h
+++ b/libavcodec/h2645_parse.h
@@ -123,7 +123,7 @@ static inline int get_nalsize(int nal_length_size, const uint8_t *buf,
 
     if (*buf_index >= buf_size - nal_length_size) {
         // the end of the buffer is reached, refill it
-        return AVERROR(EAGAIN);
+        return AVERROR_INVALIDDATA;
     }
 
     for (i = 0; i < nal_length_size; i++)
-- 
2.17.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN
  2023-10-01 18:01 [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN Michael Niedermayer
@ 2023-10-01 18:24 ` Kieran Kunhya
  2023-10-01 18:35   ` Michael Niedermayer
  2023-10-01 19:40   ` James Almer
  2023-10-15 23:16 ` Michael Niedermayer
  1 sibling, 2 replies; 5+ messages in thread
From: Kieran Kunhya @ 2023-10-01 18:24 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Sent from my mobile device

On Sun, 1 Oct 2023, 20:01 Michael Niedermayer, <michael@niedermayer.cc>
wrote:

> EAGAIN causes an assertion failure when it is returned from the decoder
>
> Fixes: Assertion consumed != (-(11)) failed at libavcodec/decode.c:462
> Fixes: assertion_IOT_instruction_decode_c_462/poc
>
> Found-by: Hardik Shah of Vehere (Dawn Treaders team)
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/h2645_parse.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/h2645_parse.h b/libavcodec/h2645_parse.h
> index 787ce971ee4..128dea09efb 100644
> --- a/libavcodec/h2645_parse.h
> +++ b/libavcodec/h2645_parse.h
> @@ -123,7 +123,7 @@ static inline int get_nalsize(int nal_length_size,
> const uint8_t *buf,
>
>      if (*buf_index >= buf_size - nal_length_size) {
>          // the end of the buffer is reached, refill it
> -        return AVERROR(EAGAIN);
> +        return AVERROR_INVALIDDATA;
>      }
>
>      for (i = 0; i < nal_length_size; i++)
> --
> 2.17.1
>

But these are not the same for an API user?

Kieran

>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN
  2023-10-01 18:24 ` Kieran Kunhya
@ 2023-10-01 18:35   ` Michael Niedermayer
  2023-10-01 19:40   ` James Almer
  1 sibling, 0 replies; 5+ messages in thread
From: Michael Niedermayer @ 2023-10-01 18:35 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1582 bytes --]

On Sun, Oct 01, 2023 at 08:24:57PM +0200, Kieran Kunhya wrote:
> Sent from my mobile device
> 
> On Sun, 1 Oct 2023, 20:01 Michael Niedermayer, <michael@niedermayer.cc>
> wrote:
> 
> > EAGAIN causes an assertion failure when it is returned from the decoder
> >
> > Fixes: Assertion consumed != (-(11)) failed at libavcodec/decode.c:462
> > Fixes: assertion_IOT_instruction_decode_c_462/poc
> >
> > Found-by: Hardik Shah of Vehere (Dawn Treaders team)
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> >  libavcodec/h2645_parse.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/h2645_parse.h b/libavcodec/h2645_parse.h
> > index 787ce971ee4..128dea09efb 100644
> > --- a/libavcodec/h2645_parse.h
> > +++ b/libavcodec/h2645_parse.h
> > @@ -123,7 +123,7 @@ static inline int get_nalsize(int nal_length_size,
> > const uint8_t *buf,
> >
> >      if (*buf_index >= buf_size - nal_length_size) {
> >          // the end of the buffer is reached, refill it
> > -        return AVERROR(EAGAIN);
> > +        return AVERROR_INVALIDDATA;
> >      }
> >
> >      for (i = 0; i < nal_length_size; i++)
> > --
> > 2.17.1
> >
> 
> But these are not the same for an API user?

What public API returns this ? (and doesnt crash)
What public API documents this to be returned ?

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I know you won't believe me, but the highest form of Human Excellence is
to question oneself and others. -- Socrates

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN
  2023-10-01 18:24 ` Kieran Kunhya
  2023-10-01 18:35   ` Michael Niedermayer
@ 2023-10-01 19:40   ` James Almer
  1 sibling, 0 replies; 5+ messages in thread
From: James Almer @ 2023-10-01 19:40 UTC (permalink / raw)
  To: ffmpeg-devel

On 10/1/2023 3:24 PM, Kieran Kunhya wrote:
> Sent from my mobile device
> 
> On Sun, 1 Oct 2023, 20:01 Michael Niedermayer, <michael@niedermayer.cc>
> wrote:
> 
>> EAGAIN causes an assertion failure when it is returned from the decoder
>>
>> Fixes: Assertion consumed != (-(11)) failed at libavcodec/decode.c:462
>> Fixes: assertion_IOT_instruction_decode_c_462/poc
>>
>> Found-by: Hardik Shah of Vehere (Dawn Treaders team)
>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>> ---
>>   libavcodec/h2645_parse.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavcodec/h2645_parse.h b/libavcodec/h2645_parse.h
>> index 787ce971ee4..128dea09efb 100644
>> --- a/libavcodec/h2645_parse.h
>> +++ b/libavcodec/h2645_parse.h
>> @@ -123,7 +123,7 @@ static inline int get_nalsize(int nal_length_size,
>> const uint8_t *buf,
>>
>>       if (*buf_index >= buf_size - nal_length_size) {
>>           // the end of the buffer is reached, refill it
>> -        return AVERROR(EAGAIN);
>> +        return AVERROR_INVALIDDATA;
>>       }
>>
>>       for (i = 0; i < nal_length_size; i++)
>> --
>> 2.17.1
>>
> 
> But these are not the same for an API user?

I think that when get_nalsize() was written, this specific path was 
meant to be handled by internal callers (e.g, ff_h2645_packet_split) in 
some custom way, but ultimately none did, and simply treated all return 
codes < 0 as errors, propagating them all the way to the library user.

So either code using get_nalsize() gets adapted to properly handle 
EAGAIN as "refill the buffer" (judging by the comment above), or just 
remove all pretensions of there being situations other than fatal errors 
and success, which is what Michael did.

> 
> Kieran
> 
>>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN
  2023-10-01 18:01 [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN Michael Niedermayer
  2023-10-01 18:24 ` Kieran Kunhya
@ 2023-10-15 23:16 ` Michael Niedermayer
  1 sibling, 0 replies; 5+ messages in thread
From: Michael Niedermayer @ 2023-10-15 23:16 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 856 bytes --]

On Sun, Oct 01, 2023 at 08:01:06PM +0200, Michael Niedermayer wrote:
> EAGAIN causes an assertion failure when it is returned from the decoder
> 
> Fixes: Assertion consumed != (-(11)) failed at libavcodec/decode.c:462
> Fixes: assertion_IOT_instruction_decode_c_462/poc
> 
> Found-by: Hardik Shah of Vehere (Dawn Treaders team)
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/h2645_parse.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

will apply


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship: All citizens are under surveillance, all their steps and
actions recorded, for the politicians to enforce control.
Democracy: All politicians are under surveillance, all their steps and
actions recorded, for the citizens to enforce control.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-10-15 23:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-01 18:01 [FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN Michael Niedermayer
2023-10-01 18:24 ` Kieran Kunhya
2023-10-01 18:35   ` Michael Niedermayer
2023-10-01 19:40   ` James Almer
2023-10-15 23:16 ` Michael Niedermayer

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git