2022-07-07 18:26:26

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [PATCH v2] net: rxrpc: fix clang -Wformat warning

On Thu, Jul 07, 2022 at 11:20:52AM -0700, Justin Stitt wrote:
> When building with Clang we encounter this warning:
> | net/rxrpc/rxkad.c:434:33: error: format specifies type 'unsigned short'
> | but the argument has type 'u32' (aka 'unsigned int') [-Werror,-Wformat]
> | _leave(" = %d [set %hx]", ret, y);
>
> y is a u32 but the format specifier is `%hx`. Going from unsigned int to
> short int results in a loss of data. This is surely not intended
> behavior. If it is intended, the warning should be suppressed through
> other means.
>
> This patch should get us closer to the goal of enabling the -Wformat
> flag for Clang builds.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/378
> Signed-off-by: Justin Stitt <[email protected]>

Reviewed-by: Nathan Chancellor <[email protected]>

> ---
> diff from v1 -> v2:
> * Change format specifier from %u to %x to properly represent hexadecimal.
>
> net/rxrpc/rxkad.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
> index 08aab5c01437..258917a714c8 100644
> --- a/net/rxrpc/rxkad.c
> +++ b/net/rxrpc/rxkad.c
> @@ -431,7 +431,7 @@ static int rxkad_secure_packet(struct rxrpc_call *call,
> break;
> }
>
> - _leave(" = %d [set %hx]", ret, y);
> + _leave(" = %d [set %x]", ret, y);
> return ret;
> }
>
> --
> 2.37.0.rc0.161.g10f37bed90-goog
>