summaryrefslogtreecommitdiffstats
path: root/kernel/params.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2014-12-23 05:35:36 +0100
committerRusty Russell <rusty@rustcorp.com.au>2014-12-23 05:37:41 +0100
commit574732c73d155320f9358d9ee5d84beb0f4ecee2 (patch)
tree7ec0855efcbc207f6e226ab97f5da0bdaa2adb4c /kernel/params.c
parentMerge tag 'dm-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/de... (diff)
downloadlinux-574732c73d155320f9358d9ee5d84beb0f4ecee2.tar.xz
linux-574732c73d155320f9358d9ee5d84beb0f4ecee2.zip
param: initialize store function to NULL if not available.
I rebased Kees' 'param: do not set store func without write perm' on top of my 'params: cleanup sysfs allocation'. However, my patch uses krealloc which doesn't zero memory, leaving .store unset. Reported-by: Sasha Levin <sasha.levin@oracle.com> Cc: Kees Cook <keescook@chromium.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'kernel/params.c')
-rw-r--r--kernel/params.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/params.c b/kernel/params.c
index 0af9b2c4e56c..bd65d136a470 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -648,6 +648,8 @@ static __modinit int add_sysfs_param(struct module_kobject *mk,
/* Do not allow runtime DAC changes to make param writable. */
if ((kp->perm & (S_IWUSR | S_IWGRP | S_IWOTH)) != 0)
mk->mp->attrs[mk->mp->num].mattr.store = param_attr_store;
+ else
+ mk->mp->attrs[mk->mp->num].mattr.store = NULL;
mk->mp->attrs[mk->mp->num].mattr.attr.name = (char *)name;
mk->mp->attrs[mk->mp->num].mattr.attr.mode = kp->perm;
mk->mp->num++;