Re: Undefined behavior detected by new clang's ubsan - Mailing list pgsql-hackers

From John Naylor
Subject Re: Undefined behavior detected by new clang's ubsan
Date
Msg-id CANWCAZaM6h4saSOYo__5-G4X6xT=FTq1HabEyNM+nmLe3GnyLQ@mail.gmail.com
Whole thread Raw
In response to Re: Undefined behavior detected by new clang's ubsan  (Alexander Lakhin <exclusion@gmail.com>)
Responses Re: Undefined behavior detected by new clang's ubsan
List pgsql-hackers
On Thu, Jan 22, 2026 at 3:00 AM Alexander Lakhin <exclusion@gmail.com> wrote:
> heaptoast.c
>      memcpy(VARDATA(result) +
> -         (curchunk * TOAST_MAX_CHUNK_SIZE - sliceoffset) + chcpystrt,
> +         (int)(curchunk * TOAST_MAX_CHUNK_SIZE - sliceoffset) + chcpystrt,
>
> Not sure about this one. It would be better if we reversing the
> operands allowed us to avoid overflow in the first place:
>
> -         (curchunk * TOAST_MAX_CHUNK_SIZE - sliceoffset) + chcpystrt,
> +         chcpystrt + (curchunk * TOAST_MAX_CHUNK_SIZE - sliceoffset)
>
> Does that silence the warning?
>
>
> Unfortunately, no -- I still got:
> heaptoast.c:771:17: runtime error: addition of unsigned offset to 0x78120673fac6 overflowed to 0x78120673fa04
> SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior heaptoast.c:771:17

Okay, I'll refrain from guessing more then. I'm due for an OS upgrade
anyway, and that'll have clang 21, so I'll come back to this one
unless someone beats me to it.

--
John Naylor
Amazon Web Services



pgsql-hackers by date:

Previous
From: Xuneng Zhou
Date:
Subject: Re: Add WALRCV_CONNECTING state to walreceiver
Next
From: Shinya Kato
Date:
Subject: Avoid recalculating pgprocno in ProcArrayAdd()