Add barrier to soob. Return -EOVERFLOW if the buffer
is exceeded.
Suggested-by: Hillf Danton <hdanton@sina.com>
Reported-by: syzbot+bfdd4a2f07be52351350@syzkaller.appspotmail.com
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
        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;