Fix NFSv3 oops (rhbz 1131551)

This commit is contained in:
Josh Boyer 2014-08-19 12:10:55 -04:00
parent 40c82e0c69
commit 030877c4ae
2 changed files with 50 additions and 0 deletions

View File

@ -763,6 +763,9 @@ Patch25118: sched-fix-sched_setparam-policy-1-logic.patch
#CVE-2014-{5206,5207} rhbz 1129662 1129669
Patch25130: namespaces-remount-fixes.patch
#rhbz 1131551
Patch25132: nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch
# END OF PATCH DEFINITIONS
%endif
@ -1469,6 +1472,9 @@ ApplyPatch sched-fix-sched_setparam-policy-1-logic.patch
#CVE-2014-{5206,5207} rhbz 1129662 1129669
ApplyPatch namespaces-remount-fixes.patch
#rhbz 1131551
ApplyPatch nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch
# END OF PATCH APPLICATIONS
%endif
@ -2281,6 +2287,9 @@ fi
# and build.
%changelog
* Tue Aug 19 2014 Josh Boyer <jwboyer@fedoraproject.org>
- Fix NFSv3 oops (rhbz 1131551)
* Thu Aug 14 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.14.17-100
- Linux v3.14.17

View File

@ -0,0 +1,41 @@
Bugzilla: 1131551
Upstream-status: 3.17-rc1 and Cc'd to stable
From 7a9e75a185e6b3a3860e6a26fb6e88691fc2c9d9 Mon Sep 17 00:00:00 2001
From: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Date: Sat, 26 Jul 2014 14:58:01 +0300
Subject: [PATCH] nfs3_list_one_acl(): check get_acl() result with
IS_ERR_OR_NULL
There was a check for result being not NULL. But get_acl() may return
NULL, or ERR_PTR, or actual pointer.
The purpose of the function where current change is done is to "list
ACLs only when they are available", so any error condition of get_acl()
mustn't be elevated, and returning 0 there is still valid.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81111
Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Fixes: 74adf83f5d77 (nfs: only show Posix ACLs in listxattr if actually...)
Cc: stable@vger.kernel.org # 3.14+
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
---
fs/nfs/nfs3acl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c
index 8f854dde4150..d0fec260132a 100644
--- a/fs/nfs/nfs3acl.c
+++ b/fs/nfs/nfs3acl.c
@@ -256,7 +256,7 @@ nfs3_list_one_acl(struct inode *inode, int type, const char *name, void *data,
char *p = data + *result;
acl = get_acl(inode, type);
- if (!acl)
+ if (IS_ERR_OR_NULL(acl))
return 0;
posix_acl_release(acl);
--
1.9.3