Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68390ccf authored by Lukasz Pawelczyk's avatar Lukasz Pawelczyk Committed by Casey Schaufler
Browse files

smack: fix logic in smack_inode_init_security function



In principle if this function was called with "value" == NULL and "len"
not NULL it could return different results for the "len" compared to a
case where "name" was not NULL. This is a hypothetical case that does
not exist in the kernel, but it's a logic bug nonetheless.

Signed-off-by: default avatarLukasz Pawelczyk <l.pawelczyk@samsung.com>
parent 1a28979b
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -800,7 +800,7 @@ static int smack_inode_init_security(struct inode *inode, struct inode *dir,
	if (name)
		*name = XATTR_SMACK_SUFFIX;

	if (value) {
	if (value && len) {
		rcu_read_lock();
		may = smk_access_entry(skp->smk_known, dsp->smk_known,
				       &skp->smk_rules);
@@ -821,10 +821,9 @@ static int smack_inode_init_security(struct inode *inode, struct inode *dir,
		*value = kstrdup(isp->smk_known, GFP_NOFS);
		if (*value == NULL)
			return -ENOMEM;
	}

	if (len)
		*len = strlen(isp->smk_known);
	}

	return 0;
}