[FFmpeg-devel] [libav-devel] [PATCH] nutdec: only copy the header if it exists

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Sat Dec 19 12:24:42 CET 2015


On 18.12.2015 23:11, Luca Barbato wrote:
> On 18/12/15 20:12, Andreas Cadhalpun wrote:
>> On 18.12.2015 20:06, Luca Barbato wrote:
>>> On 18/12/15 19:05, Andreas Cadhalpun wrote:
>>>> On 18.12.2015 18:53, Luca Barbato wrote:
>>>>> On 18/12/15 17:24, Andreas Cadhalpun wrote:
>>>>>> Fixes runtime error: null pointer passed as argument 2, which is
>>>>>> declared to never be null
>>>>>>
>>>>>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>>>>>> ---
>>>>>>  libavformat/nutdec.c | 3 ++-
>>>>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
>>>>>> index 47ae7a7..3aa7a88 100644
>>>>>> --- a/libavformat/nutdec.c
>>>>>> +++ b/libavformat/nutdec.c
>>>>>> @@ -1133,7 +1133,8 @@ static int decode_frame(NUTContext *nut, AVPacket *pkt, int frame_code)
>>>>>>      ret = av_new_packet(pkt, size + nut->header_len[header_idx]);
>>>>>>      if (ret < 0)
>>>>>>          return ret;
>>>>>> -    memcpy(pkt->data, nut->header[header_idx], nut->header_len[header_idx]);
>>>>>> +    if (nut->header[header_idx])
>>>>>> +        memcpy(pkt->data, nut->header[header_idx], nut->header_len[header_idx]);
>>>>>>      pkt->pos = avio_tell(bc); // FIXME
>>>>>>      if (stc->last_flags & FLAG_SM_DATA) {
>>>>>>          int sm_size;
>>>>>>
>>>>>
>>>>> When it happens exactly?
>>>>
>>>> When header_idx is 0 and thus nut->header_len[0] = 0 and nut->header[0] = NULL.
>>>>
>>>
>>> if header_len is 0 what's exactly the problem?
>>
>> gcc's undefined behavior sanitizer prints the error from the commit message.
>> That's all. See e.g. [1].
> 
> Probably that should go in the commit message

I thought that including the runtime error message was clear enough, but apparently
that's not the case. I'll use 'Fixes ubsan runtime error' in the future.

> or the header[0] could be made pointing "" to keep the code slightly tidy.

That would be an alternative fix, but I prefer keeping a pointer that should not
be used as NULL.

Best regards,
Andreas


More information about the ffmpeg-devel mailing list