[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <74c6f54cd3869258f4c83b46d9e5b95f7f0dab4b.1656878516.git.cdleonard@gmail.com>
Date: Sun, 3 Jul 2022 23:06:43 +0300
From: Leonard Crestez <cdleonard@...il.com>
To: "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>
Cc: Paolo Abeni <pabeni@...hat.com>,
Soheil Hassas Yeganeh <soheil@...gle.com>,
Wei Wang <weiwan@...gle.com>,
Joanne Koong <joannelkoong@...il.com>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH] net: Shrink sock.sk_err sk_err_soft to u16 from int
These fields hold positive errno values which are limited by
ERRNO_MAX=4095 so 16 bits is more than enough.
They are also always positive; setting them to a negative errno value
can result in falsely reporting a successful read/write of incorrect
size.
Signed-off-by: Leonard Crestez <cdleonard@...il.com>
---
include/net/sock.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
I ran some relatively complex tests without noticing issues but some corner
case where this breaks might exist.
diff --git a/include/net/sock.h b/include/net/sock.h
index 0dd43c3df49b..acd85d1702d9 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -480,11 +480,11 @@ struct sock {
u16 sk_protocol;
u16 sk_gso_max_segs;
unsigned long sk_lingertime;
struct proto *sk_prot_creator;
rwlock_t sk_callback_lock;
- int sk_err,
+ u16 sk_err,
sk_err_soft;
u32 sk_ack_backlog;
u32 sk_max_ack_backlog;
kuid_t sk_uid;
u8 sk_txrehash;
--
2.25.1
Powered by blists - more mailing lists