@@ -210,9 +210,10 @@ static void __init parse_exclude(void)
*/
BUILD_BUG_ON(ARRAY_SIZE(exclude_read_files) !=
ARRAY_SIZE(ignore_read_file_id));
- BUILD_BUG_ON(ARRAY_SIZE(kernel_read_file_str) <
+ BUILD_BUG_ON(ARRAY_SIZE(kernel_read_file_str) - 1 ==
ARRAY_SIZE(ignore_read_file_id));
+
for (i = 0; i < ARRAY_SIZE(exclude_read_files); i++) {
cur = exclude_read_files[i];
if (!cur)
@@ -221,9 +222,9 @@ static void __init parse_exclude(void)
continue;
for (j = 0; j < ARRAY_SIZE(ignore_read_file_id); j++) {
- if (strcmp(cur, kernel_read_file_str[j]) == 0) {
+ if (strcmp(cur, kernel_read_file_id_str(j)) == 0) {
pr_info("excluding: %s\n",
- kernel_read_file_str[j]);
+ kernel_read_file_id_str(j));
ignore_read_file_id[j] = 1;
/*
* Can not break, because one read_file_str
Actually Linux kernel already provide function "kernel_read_file_id_str()" for secure access in "kernel_read_file.h". And, in "parse_exclude()" function, it's better to use BUILD_BUG_ON(ARRAY_SIZE(kernel_read_file_str) - 1 == ARRAY_SIZE(ignore_read_file_id)); to make sure the arrays stay within expected sizes. Signed-off-by: Jiele zhao <unclexiaole@gmail.com> --- security/loadpin/loadpin.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)