Re: Silence -fsanitize=function where we cast function pointers on purpose - Mailing list pgsql-hackers

From Chao Li
Subject Re: Silence -fsanitize=function where we cast function pointers on purpose
Date
Msg-id B1A2B6F4-E3C9-46A9-A198-EF49CE0657F5@gmail.com
Whole thread
In response to Silence -fsanitize=function where we cast function pointers on purpose  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: Silence -fsanitize=function where we cast function pointers on purpose
List pgsql-hackers

> On Sep 29, 2026, at 13:47, Peter Eisentraut <peter@eisentraut.org> wrote:
>
> In clang, -fsanitize=undefined includes -fsanitize=function, which reports every call made through a function pointer
whosetype does not exactly match the called function, so it fires all over the place on expression tree walkers and
mutators,as well as a few other places.  So -fsanitize=undefined hasn't been working cleanly under clang for a while.
(Beforeclang 17, it only applied to C++.) 
>
> This is the same issue that caused us to use -Wno-cast-function-type-strict with clang.  That warning applies at the
placewhere the mismatching function pointer is passed, so there are potentially hundreds of sites.  Therefore, a global
disablingis appropriate.  The sanitizer, on the other hand, triggers where the function is called, which are only about
twodozen places, so it seems possible to silence these checks individually and still main the check for accidental
violationselsewhere. 
>
> I propose to add pg_attribute_no_sanitize_function() and place it on the functions that make such calls.  This is
similarto some existing pg_attribute_no_sanitize_xxx attributes. 
> <0001-Silence-fsanitize-function-where-we-cast-function-po.patch>

Overall looks good to me.

Just one comment, in dynahash.c, hash_search_with_hash_value() is marked with the new annotation, feels like
hash_update_hash_key()also needs to be annotated, because it also invokes match and keycopy etc callbacks. 

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/







pgsql-hackers by date:

Previous
From: shveta malik
Date:
Subject: Re: Temporary slot leak when creation fails in a subtransaction
Next
From: Anthonin Bonnefoy
Date:
Subject: Protocol Compression (fourth attempt)