Re: Undefined behavior detected by new clang's ubsan
| От | Alexander Lakhin |
|---|---|
| Тема | Re: Undefined behavior detected by new clang's ubsan |
| Дата | |
| Msg-id | ba2ba16a-13bd-4d66-8ce5-753792d7a4ff@gmail.com обсуждение исходный текст |
| Ответ на | Re: Undefined behavior detected by new clang's ubsan (John Naylor <johncnaylorls@gmail.com>) |
| Ответы |
Re: Undefined behavior detected by new clang's ubsan
|
| Список | pgsql-hackers |
Hello John,
21.01.2026 12:05, John Naylor wrote:
21.01.2026 12:05, John Naylor wrote:
As for the rest of the proposed fixes, most seem okay, but I have some nits:
Thank you for spending time on this!
I agree with all of your changes (except for one noted below) -- didn't
mean to propose committable changes, just wanted to show the fixes that
allowed check-world to pass.
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
Best regards,
Alexander
В списке pgsql-hackers по дате отправления: