[FFmpeg-devel] [PATCH] avcodec/h2645_parse: Avoid EAGAIN
James Almer
jamrial at gmail.com
Sun Oct 1 22:40:33 EEST 2023
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 at 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 at 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 at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list