[Mesa-dev] [PATCH 1/3] gallium/os: Fix overflow on 32 bits

Emil Velikov emil.l.velikov at gmail.com
Tue Oct 11 15:20:35 UTC 2016


On 10 October 2016 at 22:43, Axel Davy <axel.davy at ens.fr> wrote:
> On 10/10/2016 12:44, Emil Velikov wrote:
>>
>> On 6 October 2016 at 18:51, Axel Davy <axel.davy at ens.fr> wrote:
>>>
>>> On systems with more than 4GB of ram,
>>> os_get_total_physical_memory was triggering an integer
>>> overflow for the linux and haiku path, when on
>>> 32 bits.
>>>
>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94561
>>>
>>> Signed-off-by: Axel Davy <axel.davy at ens.fr>
>>> ---
>>>   src/gallium/auxiliary/os/os_misc.c | 4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/gallium/auxiliary/os/os_misc.c
>>> b/src/gallium/auxiliary/os/os_misc.c
>>> index 82e4957..5e2bedc 100644
>>> --- a/src/gallium/auxiliary/os/os_misc.c
>>> +++ b/src/gallium/auxiliary/os/os_misc.c
>>> @@ -128,7 +128,7 @@ os_get_total_physical_memory(uint64_t *size)
>>>      const long phys_pages = sysconf(_SC_PHYS_PAGES);
>>>      const long page_size = sysconf(_SC_PAGE_SIZE);
>>>
>>> -   *size = phys_pages * page_size;
>>> +   *size = (int64_t)phys_pages * (int64_t)page_size;
>>>      return (phys_pages > 0 && page_size > 0);
>>
>> As mentioned last time around, please use the following:
>>
>> if (phys_pages =< 0 || page_size =< 0)
>>    return false;
>>
>> *size = (unt64_t)phys_pages * (unt64_t)page_size;
>> return true;
>
> Right, added.
>
Sending v2 would have been nice ;-)

Anywho... 1/3 v2 (with _both_ comments addressed) 2/3, 3/3 and 02/75v2 are
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

Thanks
Emil


More information about the mesa-dev mailing list