diff options
Diffstat (limited to 'security/integrity/ima/ima_policy.c')
| -rw-r--r-- | security/integrity/ima/ima_policy.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c index b27535a13a7..399433ad614 100644 --- a/security/integrity/ima/ima_policy.c +++ b/security/integrity/ima/ima_policy.c @@ -176,7 +176,7 @@ static bool ima_match_rules(struct ima_rule_entry *rule,  	    && rule->fsmagic != inode->i_sb->s_magic)  		return false;  	if ((rule->flags & IMA_FSUUID) && -		memcmp(rule->fsuuid, inode->i_sb->s_uuid, sizeof(rule->fsuuid))) +	    memcmp(rule->fsuuid, inode->i_sb->s_uuid, sizeof(rule->fsuuid)))  		return false;  	if ((rule->flags & IMA_UID) && !uid_eq(rule->uid, cred->uid))  		return false; @@ -530,14 +530,15 @@ static int ima_parse_rule(char *rule, struct ima_rule_entry *entry)  			ima_log_string(ab, "fsuuid", args[0].from);  			if (memchr_inv(entry->fsuuid, 0x00, -			    sizeof(entry->fsuuid))) { +				       sizeof(entry->fsuuid))) {  				result = -EINVAL;  				break;  			} -			part_pack_uuid(args[0].from, entry->fsuuid); -			entry->flags |= IMA_FSUUID; -			result = 0; +			result = blk_part_pack_uuid(args[0].from, +						    entry->fsuuid); +			if (!result) +				entry->flags |= IMA_FSUUID;  			break;  		case Opt_uid:  			ima_log_string(ab, "uid", args[0].from);  |