diff mbox series

[net-next] ipv6: fix clang Wformat warning

Message ID 20210322115701.4035289-1-arnd@kernel.org
State New
Headers show
Series [net-next] ipv6: fix clang Wformat warning | expand

Commit Message

Arnd Bergmann March 22, 2021, 11:56 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>


When building with 'make W=1', clang warns about a mismatched
format string:

net/ipv6/ah6.c:710:4: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat]
                        aalg_desc->uinfo.auth.icv_fullbits/8);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/printk.h:375:34: note: expanded from macro 'pr_info'
        printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
                                ~~~     ^~~~~~~~~~~
net/ipv6/esp6.c:1153:5: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat]
                                aalg_desc->uinfo.auth.icv_fullbits / 8);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/printk.h:375:34: note: expanded from macro 'pr_info'
        printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
                                ~~~     ^~~~~~~~~~~

Here, the result of dividing a 16-bit number by a 32-bit number
produces a 32-bit result, which is printed as a 16-bit integer.

Change the %hu format to the normal %u, which has the same effect
but avoids the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 net/ipv6/ah6.c  | 2 +-
 net/ipv6/esp6.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.29.2

Comments

Steffen Klassert March 26, 2021, 10:28 a.m. UTC | #1
On Mon, Mar 22, 2021 at 12:56:49PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>

> 

> When building with 'make W=1', clang warns about a mismatched

> format string:

> 

> net/ipv6/ah6.c:710:4: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat]

>                         aalg_desc->uinfo.auth.icv_fullbits/8);

>                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> include/linux/printk.h:375:34: note: expanded from macro 'pr_info'

>         printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)

>                                 ~~~     ^~~~~~~~~~~

> net/ipv6/esp6.c:1153:5: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat]

>                                 aalg_desc->uinfo.auth.icv_fullbits / 8);

>                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> include/linux/printk.h:375:34: note: expanded from macro 'pr_info'

>         printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)

>                                 ~~~     ^~~~~~~~~~~

> 

> Here, the result of dividing a 16-bit number by a 32-bit number

> produces a 32-bit result, which is printed as a 16-bit integer.

> 

> Change the %hu format to the normal %u, which has the same effect

> but avoids the warning.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Applied to ipsec-next, thanks!
diff mbox series

Patch

diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c
index 440080da805b..01c638f5d8b8 100644
--- a/net/ipv6/ah6.c
+++ b/net/ipv6/ah6.c
@@ -705,7 +705,7 @@  static int ah6_init_state(struct xfrm_state *x)
 
 	if (aalg_desc->uinfo.auth.icv_fullbits/8 !=
 	    crypto_ahash_digestsize(ahash)) {
-		pr_info("AH: %s digestsize %u != %hu\n",
+		pr_info("AH: %s digestsize %u != %u\n",
 			x->aalg->alg_name, crypto_ahash_digestsize(ahash),
 			aalg_desc->uinfo.auth.icv_fullbits/8);
 		goto error;
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index 153ad103ba74..831a588b04a2 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -1147,7 +1147,7 @@  static int esp_init_authenc(struct xfrm_state *x)
 		err = -EINVAL;
 		if (aalg_desc->uinfo.auth.icv_fullbits / 8 !=
 		    crypto_aead_authsize(aead)) {
-			pr_info("ESP: %s digestsize %u != %hu\n",
+			pr_info("ESP: %s digestsize %u != %u\n",
 				x->aalg->alg_name,
 				crypto_aead_authsize(aead),
 				aalg_desc->uinfo.auth.icv_fullbits / 8);