BACKPORT: Smack: fix a NULL dereference in wrong smack_import_entry() usage
authorLukasz Pawelczyk <l.pawelczyk@samsung.com>
Tue, 25 Aug 2015 10:39:46 +0000 (12:39 +0200)
committerRafal Krypa <r.krypa@samsung.com>
Mon, 21 Nov 2016 16:02:05 +0000 (17:02 +0100)
'commit e774ad683f42 ("smack: pass error code through pointers")'
made this function return proper error codes instead of NULL. Reflect that.

This is a fix for a NULL dereference introduced in
'commit 21abb1ec414c ("Smack: IPv6 host labeling")'

echo "$SOME_IPV6_ADDR \"test" > /smack/ipv6host
  (this should return EINVAL, it doesn't)
cat /smack/ipv6host
  (derefences 0x000a)

Signed-off-by: Lukasz Pawelczyk <l.pawelczyk@samsung.com>
Acked-by: Casey Schaufler <casey@schaufler-ca.com>
(cherry-picked from upstream 5f2bfe2f1de8b745dc294acaf2ca2ad68e09b374)

security/smack/smackfs.c

index e6c67c273f34cadd18fe1038bd48fffac60e0404..63e52e24a6ff21753c235151bd87ccdbbc9430a6 100644 (file)
@@ -1501,8 +1501,8 @@ static ssize_t smk_write_net6addr(struct file *file, const char __user *buf,
         */
        if (smack[0] != '-') {
                skp = smk_import_entry(smack, 0);
-               if (skp == NULL) {
-                       rc = -EINVAL;
+               if (IS_ERR(skp)) {
+                       rc = PTR_ERR(skp);
                        goto free_out;
                }
        } else {