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)
committerCasey Schaufler <casey@schaufler-ca.com>
Fri, 9 Oct 2015 22:12:46 +0000 (15:12 -0700)
'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>
security/smack/smackfs.c

index c20b154a33f22f9eba932268d733b41110b5a038..103a619b136028afad4ecd8d996d8f849d748b80 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 {