From: Amir Goldstein Date: Tue, 11 Jul 2017 12:58:35 +0000 (+0300) Subject: ovl: fix random return value on mount X-Git-Tag: v4.12.4~86 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=98cc417e0b95d8cf2baeba5a2159d46be2e0941c;p=thirdparty%2Fkernel%2Fstable.git ovl: fix random return value on mount commit 8fc646b44385ff0a9853f6590497e43049eeb311 upstream. On failure to prepare_creds(), mount fails with a random return value, as err was last set to an integer cast of a valid lower mnt pointer or set to 0 if inodes index feature is enabled. Reported-by: Dan Carpenter Fixes: 3fe6e52f0626 ("ovl: override creds with the ones from ...") Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index 4882ffb37baea..04d0c7ed645e3 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -946,6 +946,7 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent) else sb->s_d_op = &ovl_dentry_operations; + err = -ENOMEM; ufs->creator_cred = cred = prepare_creds(); if (!cred) goto out_put_lower_mnt;