OSDN Git Service

overflow.h: Add allocation size calculation helpers
authorKees Cook <keescook@chromium.org>
Mon, 7 May 2018 23:47:02 +0000 (16:47 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 9 Jul 2018 00:49:49 +0000 (17:49 -0700)
commitc41203299a521a7ba9bb41afbc14c534ee1e3554
tree4b60fb61ff9270ad3119bf4598a28a449b168252
parentd400752f547f8aea87260885fcdceed3a58e9072
overflow.h: Add allocation size calculation helpers

In preparation for replacing unchecked overflows for memory allocations,
this creates helpers for the 3 most common calculations:

array_size(a, b): 2-dimensional array
array3_size(a, b, c): 3-dimensional array
struct_size(ptr, member, n): struct followed by n-many trailing members

Each of these return SIZE_MAX on overflow instead of wrapping around.

(Additionally renames a variable named "array_size" to avoid future
collision.)

Co-developed-by: Matthew Wilcox <mawilcox@microsoft.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
drivers/md/dm-table.c
include/linux/overflow.h [new file with mode: 0644]