Messages in this thread Patch in this message | | | From | Leonard Crestez <> | Subject | [PATCH] net: Shrink sock.sk_err sk_err_soft to u16 from int | Date | Sun, 3 Jul 2022 23:06:43 +0300 |
| |
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@gmail.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
| |