linux/fs/nfs
David Howells e8896495bc NFS: Check lengths more thoroughly in NFS4 readdir XDR decode
Check the bounds of length specifiers more thoroughly in the XDR decoding of
NFS4 readdir reply data.

Currently, if the server returns a bitmap or attr length that causes the
current decode point pointer to wrap, this could go undetected (consider a
small "negative" length on a 32-bit machine).

Also add a check into the main XDR decode handler to make sure that the amount
of data is a multiple of four bytes (as specified by RFC-1014).  This makes
sure that we can do u32* pointer subtraction in the NFS client without risking
an undefined result (the result is undefined if the pointers are not correctly
aligned with respect to one another).

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
(cherry picked from 5861fddd64a7eaf7e8b1a9997455a24e7f688092 commit)
2006-08-24 15:53:34 -04:00
..
callback_proc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
callback_xdr.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
callback.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
callback.h NFSv4: Allow user to set the port used by the NFSv4 callback channel 2006-01-06 14:58:52 -05:00
delegation.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
delegation.h NFSv4: Send the delegation stateid for SETATTR calls 2006-03-20 13:44:46 -05:00
dir.c NFS: Optimise away an excessive GETATTR call when a file is symlinked 2006-07-05 13:17:13 -04:00
direct.c Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ 2006-07-03 13:49:45 -04:00
file.c NFS: Fix a potential deadlock in nfs_release_page 2006-08-24 15:48:46 -04:00
idmap.c SUNRPC: Fix dentry refcounting issues with users of rpc_pipefs 2006-08-24 15:50:51 -04:00
inode.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
internal.h [PATCH] nfs: non-procfs build fix 2006-07-02 15:10:20 -07:00
iostat.h NFSv4: Fix an oops in nfs4_fill_super 2006-03-20 13:44:48 -05:00
Makefile NFS: Split fs/nfs/inode.c 2006-06-09 09:34:33 -04:00
mount_clnt.c Merge git://git.linux-nfs.org/pub/linux/nfs-2.6 2006-03-25 09:18:27 -08:00
namespace.c NFS: Release dcache_lock in an error path of nfs_path 2006-08-03 16:55:01 -04:00
nfs2xdr.c Fix NFS2 compile error 2006-06-25 12:30:33 -07:00
nfs3acl.c NFSv3: Client-side nfsacl caching fix 2006-06-09 09:34:11 -04:00
nfs3proc.c NFS: Split fs/nfs/inode.c 2006-06-09 09:34:33 -04:00
nfs3xdr.c NFS: Split fs/nfs/inode.c 2006-06-09 09:34:33 -04:00
nfs4_fs.h NFSv4: Define an fs_locations bitmap 2006-06-09 09:34:25 -04:00
nfs4namespace.c NFS: Split fs/nfs/inode.c 2006-06-09 09:34:33 -04:00
nfs4proc.c NLM,NFSv4: Wait on local locks before we put RPC calls on the wire 2006-07-05 13:13:18 -04:00
nfs4renewd.c NFSv4: Remove requirement for machine creds for the "renew" operation 2006-01-06 14:58:47 -05:00
nfs4state.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
nfs4xdr.c NFS: Check lengths more thoroughly in NFS4 readdir XDR decode 2006-08-24 15:53:34 -04:00
nfsroot.c [PATCH] nfsroot port= parameter fix [backport of 2.4 fix] 2006-02-07 21:00:42 -05:00
pagelist.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
proc.c NFS: Split fs/nfs/inode.c 2006-06-09 09:34:33 -04:00
read.c NFS: Fix issue with EIO on NFS read 2006-08-24 15:51:08 -04:00
super.c nfs-build-fix-99 2006-06-25 06:38:47 -04:00
symlink.c nfs: remove nfs_put_link() 2006-06-25 06:39:35 -04:00
sysctl.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
unlink.c NFS: kzalloc conversion in fs/nfs 2006-03-20 13:44:10 -05:00
write.c NFS: make 2 functions static 2006-08-03 16:55:41 -04:00