|
@@ -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);
|