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

Commit 9c09a772 authored by Casey Schaufler's avatar Casey Schaufler Committed by Greg Kroah-Hartman
Browse files

Smack: slab-out-of-bounds in vsscanf



commit 84e99e58e8d1e26f04c097f4266e431a33987f36 upstream.

Add barrier to soob. Return -EOVERFLOW if the buffer
is exceeded.

Suggested-by: default avatarHillf Danton <hdanton@sina.com>
Reported-by: default avatar <syzbot+bfdd4a2f07be52351350@syzkaller.appspotmail.com>
Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b5c8896b
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -878,11 +878,21 @@ static ssize_t smk_set_cipso(struct file *file, const char __user *buf,
	else
		rule += strlen(skp->smk_known) + 1;

	if (rule > data + count) {
		rc = -EOVERFLOW;
		goto out;
	}

	ret = sscanf(rule, "%d", &maplevel);
	if (ret != 1 || maplevel > SMACK_CIPSO_MAXLEVEL)
		goto out;

	rule += SMK_DIGITLEN;
	if (rule > data + count) {
		rc = -EOVERFLOW;
		goto out;
	}

	ret = sscanf(rule, "%d", &catlen);
	if (ret != 1 || catlen > SMACK_CIPSO_MAXCATNUM)
		goto out;