linux/net
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
..
802 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
8021q [VLAN]: Fix link state propagation 2006-07-24 13:52:13 -07:00
appletalk [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
atm [ATM]: Compile error on ARM 2006-08-17 16:29:53 -07:00
ax25 [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
bluetooth [Bluetooth] Correct RFCOMM channel MTU for broken implementations 2006-07-24 12:44:25 -07:00
bridge [BRIDGE]: Disable SG/GSO if TX checksum is off 2006-08-17 18:22:32 -07:00
core [NET]: Disallow whitespace in network device names. 2006-08-17 16:29:56 -07:00
dccp [IPV6]: Audit all ip6_dst_lookup/ip6_dst_store calls 2006-08-02 13:38:14 -07:00
decnet [DECNET]: Fix for routing bug 2006-08-02 14:14:44 -07:00
econet [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
ethernet Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ieee80211 [PATCH] ieee80211: TKIP requires CRC32 2006-07-27 14:37:31 -04:00
ipv4 [NETFILTER]: ip_tables: fix table locking in ipt_do_table 2006-08-17 18:13:53 -07:00
ipv6 [MCAST]: Fix filter leak on device removal. 2006-08-17 16:29:57 -07:00
ipx [IPX]: Fix typo, ipxhdr() --> ipx_hdr() 2006-08-09 17:36:15 -07:00
irda [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
key Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
lapb [LAPB]: Fix windowsize check 2006-08-05 21:15:58 -07:00
llc [LLC]: multicast receive device match 2006-08-13 18:56:26 -07:00
netfilter [NETFILTER]: ctnetlink: fix deadlock in table dumping 2006-08-17 18:12:38 -07:00
netlink [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
netrom [NETROM] lockdep: fix false positive 2006-07-12 13:59:02 -07:00
packet Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rose [ROSE] lockdep: fix false positive 2006-07-12 13:58:59 -07:00
rxrpc [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
sched [PKT_SCHED] cls_u32: Fix typo. 2006-08-17 16:29:54 -07:00
sctp [SCTP]: ADDIP: Don't use an address as source until it is ASCONF-ACKed 2006-07-21 14:49:25 -07:00
sunrpc NFS: Check lengths more thoroughly in NFS4 readdir XDR decode 2006-08-24 15:53:34 -04:00
tipc [TIPC]: Removing useless casts 2006-07-21 15:52:20 -07:00
unix [AF_UNIX]: Kernel memory leak fix for af_unix datagram getpeersec patch 2006-08-02 14:12:06 -07:00
wanrouter [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
x25 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
xfrm [IPSEC]: Validate properly in xfrm_dst_check() 2006-08-13 18:55:53 -07:00
compat.c [NETFILTER]: iptables 32bit compat layer 2006-04-01 02:25:19 -08:00
Kconfig [SECMARK]: Add secmark support to core networking. 2006-06-17 21:29:57 -07:00
Makefile [TIPC] Initial merge 2006-01-12 14:06:31 -08:00
nonet.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
socket.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sysctl_net.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
TUNABLE Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00