diff options
| -rw-r--r-- | kernel/params.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/kernel/params.c b/kernel/params.c index 795321aba29f..0af9b2c4e56c 100644 --- a/kernel/params.c +++ b/kernel/params.c @@ -645,7 +645,9 @@ static __modinit int add_sysfs_param(struct module_kobject *mk,  	sysfs_attr_init(&mk->mp->attrs[mk->mp->num].mattr.attr);  	mk->mp->attrs[mk->mp->num].param = kp;  	mk->mp->attrs[mk->mp->num].mattr.show = param_attr_show; -	mk->mp->attrs[mk->mp->num].mattr.store = param_attr_store; +	/* 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;  	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++; | 
