Re: BUG #18247: Integer overflow leads to negative width

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Alexander Lakhin <exclusion(at)gmail(dot)com>, rekgrpth(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #18247: Integer overflow leads to negative width
Date: 2023-12-18 05:45:33
Message-ID: CAMbWs4_WwOfr+fOP=1Uka9dgBWXWiO1zjYTrxaW=k=rMfQLB_w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Fri, Dec 15, 2023 at 11:30 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> > On Fri, Dec 15, 2023 at 2:00 PM Alexander Lakhin <exclusion(at)gmail(dot)com>
> >> Your patch looks good to me, but maybe you would find it suitable to
> fix in
> >> passing one more integer overflow in costsize.c?
>
> > Nice catch. The overflow occurs when cost_bitmap_heap_scan() calls
> > compute_bitmap_pages(), and the loop_count parameter is converted from
> > double to int. I wonder if we can change the loop_count parameter to be
> > double for compute_bitmap_pages() to avoid such overflow.
>
> However, I'd be a bit uncomfortable about back-patching; since that
> function is globally exposed, it's at least possible that some
> extension is calling it and would see an ABI break. Is it good enough
> to fix this in HEAD? I'd argue yes, given that a loop_count larger
> than INT_MAX seems like a pretty improbable case.

I agree with you that it's good enough to fix this in HEAD. The lack of
complaints from fields for so many years suggests that it's not a common
case to have loop_count larger than INT_MAX.

Thanks
Richard

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Richard Guo 2023-12-18 08:43:37 Re: BUG #18247: Integer overflow leads to negative width
Previous Message Julien Rouhaud 2023-12-17 12:33:40 Re: BUG #18251: Incorrect DROP VIEW pg_catalog.* behavior