[PATCH libdrm 2/2] include: Avoid potentially infinite loop in log2_int().

Paul Gofman pgofman at codeweavers.com
Fri Oct 30 13:07:59 UTC 2020


On 10/30/20 14:07, Pekka Paalanen wrote:
> On Wed, 28 Oct 2020 13:06:02 +0300
> Paul Gofman <pgofman at codeweavers.com> wrote:
>
>> Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
>> ---
>>  util_math.h | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/util_math.h b/util_math.h
>> index e2fa95f5..f6bbe192 100644
>> --- a/util_math.h
>> +++ b/util_math.h
>> @@ -38,6 +38,9 @@ static inline unsigned log2_int(unsigned x)
>>      if (x < 2) {
>>          return 0;
>>      }
>> +    if (x & 0x80000000) {
>> +        return 31;
>> +    }
>>      for (l = 2; ; l++) {
>>          if ((unsigned)(1 << l) > x) {
>>              return l - 1;
> Hi,
>
> I guess that does it, but it seems quite a lot of code that could be
> a two-liner:
> http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogObvious
>
>
> Thanks,
> pq

Hello,

    thanks, I've sent the updated patches with simplified implementation.

Regards,

    Paul.



More information about the dri-devel mailing list