[x265] CostEstimateGroup::processTasks() accesses uninitialized memory

Pranav Kant prka at google.com
Wed Sep 24 03:08:11 UTC 2025


Can anyone commit this for me?

On Wed, Jun 25, 2025 at 11:49 AM Pranav Kant <prka at google.com> wrote:

> Moving that declaration to following location shouldn't have any
> side-effects. We are just bringing the declaration closer to its usage to
> avoid accessing uninitialized memory:
>
> @@ -4075,6 +4074,7 @@ void CostEstimateGroup::processTasks(int
> workerThreadID)
>
>              if (m_lookahead.m_param->bEnableTemporalFilter && curFrame &&
> (curFrame->m_lowres.sliceType == X265_TYPE_IDR ||
> curFrame->m_lowres.sliceType == X265_TYPE_I || curFrame->m_lowres.sliceType
> == X265_TYPE_P))
>              {
> +                MotionEstimatorTLD& m_metld = m_lookahead.m_metld[id];
>
> Would someone be able to commit it for me?
>
>
>
> On Mon, Jun 23, 2025 at 3:37 PM Pranav Kant <prka at google.com> wrote:
>
>> Hi,
>>
>> We noticed that one of our internal tests fails when trying to access
>> uninitialized memory.
>>
>> In source/encoder/slicetype.cpp, processTasks() accesses
>> `m_lookahead.m_metld` which is only initialized in the constructor when
>> `m_param->bEnableTemporalFilter` is true. This can lead to a crash when
>> calling processTasks with bEnableTemporalFilter = false.
>>
>> It seems just moving the declaration closer to the use in that function
>> should be sufficient?
>>
>> Thanks.
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20250923/dbdb3983/attachment.htm>


More information about the x265-devel mailing list