Kees Cook
94dc0555b8
overflow.h: Add allocation size calculation helpers
...
commit 610b15c50e upstream.
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 >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2023-05-16 08:57:52 +09:00
..
2023-05-16 08:48:03 +09:00
2023-05-15 16:55:48 +09:00
2023-05-15 16:48:18 +09:00
2016-05-04 12:39:35 -07:00
2020-12-17 17:19:05 +09:00
2017-01-31 10:45:54 -08:00
2023-05-15 14:54:47 +09:00
2015-05-29 14:19:06 -04:00
2013-11-23 22:33:55 -08:00
2023-05-15 14:21:02 +09:00
2014-01-14 23:23:03 -05:00
2016-06-10 15:15:44 -04:00
2014-11-10 15:25:30 -05:00
2023-05-15 08:40:14 +09:00
2016-03-10 17:12:12 -05:00
2016-09-22 11:15:02 -04:00
2016-09-22 11:15:02 -04:00
2016-09-22 11:15:03 -04:00
2014-01-16 13:44:11 -05:00
2016-09-22 11:15:02 -04:00
2023-05-15 17:03:20 +09:00
2017-11-30 08:39:02 +00:00
2017-01-31 13:55:27 -08:00
2023-05-15 12:53:20 +09:00
2017-05-20 14:28:37 +02:00
2015-11-04 21:19:53 -08:00
2016-01-08 20:03:05 -05:00
2023-05-15 17:15:29 +09:00
2023-05-15 14:54:47 +09:00
2023-05-15 09:22:57 +09:00
2023-05-15 14:54:47 +09:00
2017-01-31 10:45:54 -08:00
2015-10-31 19:06:00 -04:00
2015-04-15 12:10:20 -04:00
2016-10-07 14:42:05 -07:00
2016-08-24 21:55:05 -04:00
2017-07-27 15:07:55 -07:00
2011-10-31 19:31:18 -04:00
2016-02-22 22:34:42 -05:00
2016-02-22 22:34:42 -05:00
2016-10-14 11:55:17 -04:00
2023-05-15 08:34:02 +09:00
2023-05-15 14:54:47 +09:00
2017-03-12 06:41:44 +01:00
2017-05-20 14:28:37 +02:00
2016-09-15 11:16:05 -04:00
2016-02-22 22:34:42 -05:00
2023-05-15 16:34:53 +09:00
2016-01-08 20:03:05 -05:00
2023-05-15 14:54:47 +09:00
2017-03-12 06:41:44 +01:00
2015-06-17 12:40:40 -04:00
2016-08-07 14:41:02 -06:00
2015-10-31 19:06:06 -04:00
2016-06-10 15:15:44 -04:00
2023-05-16 08:57:52 +09:00
2016-07-28 17:38:16 -07:00
2023-05-15 11:10:19 +09:00
2023-05-15 11:10:19 +09:00
2023-05-15 14:54:47 +09:00
2011-10-31 19:31:19 -04:00
2018-07-09 11:31:20 +08:00
2023-05-15 17:24:43 +09:00
2017-04-12 12:41:12 +02:00
2023-05-15 13:59:09 +09:00
2018-07-09 11:31:20 +08:00
2016-08-07 14:41:02 -06:00
2023-05-15 16:57:22 +09:00
2017-06-05 11:26:17 -04:00
2016-01-20 13:52:20 -08:00
2020-12-17 17:19:05 +09:00
2017-10-21 17:21:35 +02:00
2017-03-12 06:41:52 +01:00
2018-07-09 11:31:20 +08:00
2023-05-16 08:45:55 +09:00
2016-05-09 09:24:03 -07:00
2023-05-15 17:33:47 +09:00
2016-09-21 09:09:44 -07:00
2016-08-07 14:41:02 -06:00
2011-10-11 16:48:57 +11:00
2023-05-15 16:34:53 +09:00
2015-08-13 12:31:57 -06:00
2023-05-15 16:30:05 +09:00
2015-10-12 01:32:05 -05:00
2016-10-28 22:04:03 -07:00
2023-05-16 08:48:02 +09:00
2016-09-06 18:30:23 +02:00
2023-05-15 12:06:40 +09:00
2016-07-19 15:20:28 -07:00