Re: [PATCH] Fix possible overflow on tuplesort.c - Mailing list pgsql-hackers

From Ranier Vilela
Subject Re: [PATCH] Fix possible overflow on tuplesort.c
Date
Msg-id CAEudQAp-2pvSkq+co4e3w1e1Y_QwTUKwr14M2O1r_0GQ4-tFGA@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] Fix possible overflow on tuplesort.c  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
Em qui., 23 de abr. de 2020 às 16:43, Alvaro Herrera <alvherre@2ndquadrant.com> escreveu:
On 2020-Apr-16, Ranier Vilela wrote:

> When multiplying variables, the overflow will take place anyway, and only
> then will the meaningless product be explicitly promoted to type int64.
> It is one of the operands that should have been cast instead to avoid the
> overflow.
>
> -   if (state->availMem < (int64) ((newmemtupsize - memtupsize) * sizeof(SortTuple)))
> +   if (state->availMem < ((int64) (newmemtupsize - memtupsize) * sizeof(SortTuple)))

Doesn't sizeof() return a 64-bit wide value already?
Sizeof return size_t.
Both versions are constant expressions of type std::size_t.
 
regards,
Ranier Vilela

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [PATCH] Fix possible overflow on tuplesort.c
Next
From: James Coleman
Date:
Subject: Re: [PATCH] Fix division by zero (explain.c)