lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 7 Dec 2020 21:31:10 -0300 From: Gabriel Krisman Bertazi <krisman@...labora.com> To: dhowells@...hat.com Cc: viro@...iv.linux.org.uk, tytso@....edu, khazhy@...gle.com, adilger.kernel@...ger.ca, linux-ext4@...r.kernel.org, linux-fsdevel@...r.kernel.org, kernel@...labora.com, Miklos Szeredi <mszeredi@...hat.com>, Gabriel Krisman Bertazi <krisman@...labora.com> Subject: [PATCH 1/8] watch_queue: Make watch_sizeof() check record size From: David Howells <dhowells@...hat.com> Make watch_sizeof() give a build error if the size of the struct won't fit into the size field in the header. Reported-by: Miklos Szeredi <mszeredi@...hat.com> Signed-off-by: David Howells <dhowells@...hat.com> [Rebase to 5.10] Signed-off-by: Gabriel Krisman Bertazi <krisman@...labora.com> --- include/linux/watch_queue.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/linux/watch_queue.h b/include/linux/watch_queue.h index c994d1b2cdba..f1086d12cd03 100644 --- a/include/linux/watch_queue.h +++ b/include/linux/watch_queue.h @@ -120,7 +120,12 @@ static inline void remove_watch_list(struct watch_list *wlist, u64 id) * watch_sizeof - Calculate the information part of the size of a watch record, * given the structure size. */ -#define watch_sizeof(STRUCT) (sizeof(STRUCT) << WATCH_INFO_LENGTH__SHIFT) +#define watch_sizeof(STRUCT) \ + ({ \ + size_t max = WATCH_INFO_LENGTH >> WATCH_INFO_LENGTH__SHIFT; \ + BUILD_BUG_ON(sizeof(STRUCT) > max); \ + sizeof(STRUCT) << WATCH_INFO_LENGTH__SHIFT; \ + }) #else static inline int watch_queue_init(struct pipe_inode_info *pipe) -- 2.29.2
Powered by blists - more mailing lists