rpms/kernel/F-11 linux-2.6-nfsd-cred-refcount-fix.patch, NONE, 1.1 kernel.spec, 1.1672, 1.1673 linux-2.6-debug-selinux-null-creds.patch, 1.5, NONE

Chuck Ebbert cebbert at fedoraproject.org
Fri Jul 3 02:37:04 UTC 2009


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25806

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-nfsd-cred-refcount-fix.patch 
Removed Files:
	linux-2.6-debug-selinux-null-creds.patch 
Log Message:
Fix NFSD null credentials bug (#494067)
Remove null credentials debugging patch.

linux-2.6-nfsd-cred-refcount-fix.patch:

--- NEW FILE linux-2.6-nfsd-cred-refcount-fix.patch ---
From: David Howells <dhowells at redhat.com>
Subject: [PATCH] NFSD: Don't hold unrefcounted creds over call to nfsd_setuser()

nfsd_open() gets an unrefcounted pointer to the current process's effective
credentials at the top of the function, then calls nfsd_setuser() via
fh_verify() - which may replace and destroy the current process's effective
credentials - and then passes the unrefcounted pointer to dentry_open() - but
the credentials may have been destroyed by this point.

Instead, the value from current_cred() should be passed directly to
dentry_open() as one of its arguments, rather than being cached in a variable.

Possibly fh_verify() should return the creds to use.

Signed-off-by: David Howells <dhowells at redhat.com>
---

 fs/nfsd/vfs.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)


diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 4145083..23341c1 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -678,7 +678,6 @@ __be32
 nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
 			int access, struct file **filp)
 {
-	const struct cred *cred = current_cred();
 	struct dentry	*dentry;
 	struct inode	*inode;
 	int		flags = O_RDONLY|O_LARGEFILE;
@@ -733,7 +732,7 @@ nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
 		vfs_dq_init(inode);
 	}
 	*filp = dentry_open(dget(dentry), mntget(fhp->fh_export->ex_path.mnt),
-			    flags, cred);
+			    flags, current_cred());
 	if (IS_ERR(*filp))
 		host_err = PTR_ERR(*filp);
 	else


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1672
retrieving revision 1.1673
diff -u -p -r1.1672 -r1.1673
--- kernel.spec	3 Jul 2009 02:31:04 -0000	1.1672
+++ kernel.spec	3 Jul 2009 02:37:03 -0000	1.1673
@@ -624,7 +624,6 @@ Patch270: linux-2.6-debug-taint-vm.patch
 Patch280: linux-2.6-debug-spinlock-taint.patch
 Patch340: linux-2.6-debug-vm-would-have-oomkilled.patch
 Patch360: linux-2.6-debug-always-inline-kzalloc.patch
-Patch370: linux-2.6-debug-selinux-null-creds.patch
 Patch380: linux-2.6-defaults-pci_no_msi.patch
 Patch381: linux-2.6-pciehp-update.patch
 Patch382: linux-2.6-defaults-pciehp.patch
@@ -769,6 +768,7 @@ Patch6100: linux-2.6-fs-cifs-fix-port-nu
 Patch9001: revert-fix-modules_install-via-nfs.patch
 Patch9010: linux-2.6-nfsd-report-short-writes.patch
 Patch9020: linux-2.6-nfsd-report-short-writes-fix.patch
+Patch9030: linux-2.6-nfsd-cred-refcount-fix.patch
 
 Patch9100: cpufreq-add-atom-to-p4-clockmod.patch
 # VIA processors: enable pstates
@@ -1277,7 +1277,6 @@ ApplyPatch linux-2.6-debug-taint-vm.patc
 ApplyPatch linux-2.6-debug-spinlock-taint.patch
 ApplyPatch linux-2.6-debug-vm-would-have-oomkilled.patch
 ApplyPatch linux-2.6-debug-always-inline-kzalloc.patch
-ApplyPatch linux-2.6-debug-selinux-null-creds.patch
 
 #
 # PCI
@@ -1473,6 +1472,8 @@ ApplyPatch squashfs-broken-when-pagesize
 ApplyPatch linux-2.6-nfsd-report-short-writes.patch
 # fix the short write fix (#508174)
 ApplyPatch linux-2.6-nfsd-report-short-writes-fix.patch
+# Fix null credential bug (#494067)
+ApplyPatch linux-2.6-nfsd-cred-refcount-fix.patch
 
 # fix cifs mount option "port=" (#506574)
 ApplyPatch linux-2.6-fs-cifs-fix-port-numbers.patch
@@ -2091,6 +2092,10 @@ fi
 # and build.
 
 %changelog
+* Thu Jul 02 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29.6-211
+- Fix NFSD null credentials bug (#494067)
+- Remove null credentials debugging patch.
+
 * Thu Jul 02 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29.6-210
 - Linux 2.6.29.6
 


--- linux-2.6-debug-selinux-null-creds.patch DELETED ---




More information about the fedora-extras-commits mailing list