[FFmpeg-devel] [PATCH 10/11] avcodec/h264_parser: zero-initialize H264PredWeightTable

Mark Thompson sw at jkqxz.net
Sun Jun 11 18:59:19 EEST 2017


On 11/06/17 16:12, Timo Rothenpieler wrote:
>> Seems dubious?  That is not a small structure, and it's being used essentially write-only here to skip over an unwanted part of the slice header - since it will only ever write to a small proportion of the elements, initialising all of them to zero feels like a waste.
>>
>> (The only argument in Coverity seems to be that passing a pointer to an uninitialised structure to an external function is bad - it hasn't actually looked at the function to observe that it doesn't read anything currently in the structure.)
> 
> It calls ff_h264_pred_weight_table in line 204, which it does analyze, and which accesses pwt->chroma_log2_weight_denom, which was not initialized before.

I think those accesses are wrong and should be fixed - patch following.

(I could believe that the monochrome H.264 stream with prediction weights required to make this actually error out with the current code is quite rare.)

> I don't think doing = { 0 }; is expensive. iirc all elements except for the first one are zero-initialized already, even though it's implementation-defined or even undefined.

It's all indeterminate - see C11 section 6.7.9.  A compiler could in theory choose to initialise it to zero or 42 or any other value, but there is no reason for any particular choice so it won't bother.

- Mark


More information about the ffmpeg-devel mailing list