[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200728063643.396100-3-hch@lst.de>
Date: Tue, 28 Jul 2020 08:36:41 +0200
From: Christoph Hellwig <hch@....de>
To: "David S. Miller" <davem@...emloft.net>
Cc: Jan Engelhardt <jengelh@...i.de>, Ido Schimmel <idosch@...sch.org>,
"Jason A. Donenfeld" <Jason@...c4.com>,
David Laight <David.Laight@...LAB.COM>, netdev@...r.kernel.org
Subject: [PATCH 2/4] net: make sockptr_is_null strict aliasing safe
While the kernel in general is not strict aliasing safe we can trivially
do that in sockptr_is_null without affecting code generation, so always
check the actually assigned union member.
Reported-by: Jan Engelhardt <jengelh@...i.de>
Signed-off-by: Christoph Hellwig <hch@....de>
---
include/linux/sockptr.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/linux/sockptr.h b/include/linux/sockptr.h
index 7d5cdb2b30b5f0..b13ea1422f93a5 100644
--- a/include/linux/sockptr.h
+++ b/include/linux/sockptr.h
@@ -64,7 +64,9 @@ static inline int __must_check init_user_sockptr(sockptr_t *sp, void __user *p)
static inline bool sockptr_is_null(sockptr_t sockptr)
{
- return !sockptr.user && !sockptr.kernel;
+ if (sockptr_is_kernel(sockptr))
+ return !sockptr.kernel;
+ return !sockptr.user;
}
static inline int copy_from_sockptr(void *dst, sockptr_t src, size_t size)
--
2.27.0
Powered by blists - more mailing lists