linux/net/ipv6
Patrick McHardy 544473c166 [NETFILTER]: {ip,ip6,arp}_tables: return EAGAIN for invalid SO_GET_ENTRIES size
Rule dumping is performed in two steps: first userspace gets the
ruleset size using getsockopt(SO_GET_INFO) and allocates memory,
then it calls getsockopt(SO_GET_ENTRIES) to actually dump the
ruleset. When another process changes the ruleset in between the
sizes from the first getsockopt call doesn't match anymore and
the kernel aborts. Unfortunately it returns EAGAIN, as for multiple
other possible errors, so userspace can't distinguish this case
from real errors.

Return EAGAIN so userspace can retry the operation.

Fixes (with current iptables SVN version) netfilter bugzilla #104.

Signed-off-by: Patrick McHardy <kaber@trash.net>
2008-04-14 11:15:45 +02:00
..
netfilter [NETFILTER]: {ip,ip6,arp}_tables: return EAGAIN for invalid SO_GET_ENTRIES size 2008-04-14 11:15:45 +02:00
addrconf_core.c [IPV6]: ipv6_addr_type() doesn't know about RFC4193 addresses. 2007-07-31 02:28:21 -07:00
addrconf.c [IPV6] MROUTE: Do not call ipv6_find_idev() directly. 2008-04-13 23:21:16 -07:00
addrlabel.c [NET] NETNS: Omit sock->sk_net without CONFIG_NET_NS. 2008-03-26 04:39:55 +09:00
af_inet6.c [IPV6] MROUTE: Support multicast forwarding. 2008-04-05 22:33:38 +09:00
ah6.c [IPSEC]: Fix bogus usage of u64 on input sequence number 2008-02-12 22:50:35 -08:00
anycast.c [IPV6]: Unify ip6_onlink() and ipip6_onlink(). 2008-04-03 10:06:00 +09:00
datagram.c [NETNS][IPV6]: inet6_addr - check ipv6 address per namespace 2008-01-28 15:01:44 -08:00
esp6.c [ESP]: Ensure IV is in linear part of the skb to avoid BUG() due to OOB access 2008-03-27 16:08:03 -07:00
exthdrs_core.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
exthdrs.c [NETNS][IPV6]: inet6_addr - make ipv6_chk_home_addr namespace aware 2008-01-28 15:01:46 -08:00
fib6_rules.c [IPV6] FIB_RULE: Sparse: fib6_rules_cleanup() is of void. 2008-04-11 19:47:53 +09:00
icmp.c [IPV6]: Simplify IPv6 control sockets creation. 2008-04-03 14:31:03 -07:00
inet6_connection_sock.c [IPV6] __inet6_csk_dst_store(): fix check-after-use 2007-10-15 12:26:32 -07:00
inet6_hashtables.c [SOCK][NETNS]: Add a struct net argument to sock_prot_inuse_add and _get. 2008-03-31 19:41:46 -07:00
ip6_fib.c [NET] NETNS: Omit sock->sk_net without CONFIG_NET_NS. 2008-03-26 04:39:55 +09:00
ip6_flowlabel.c [NETNS][IPV6] flowlabels - make proc per namespace 2008-03-26 16:53:30 -07:00
ip6_input.c [IPV6]: Kill several warnings without CONFIG_IPV6_MROUTE. 2008-04-11 19:47:49 +09:00
ip6_output.c [IPV6]: Make address arguments const. 2008-04-12 13:43:18 +09:00
ip6_tunnel.c net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
ip6mr.c [IPV6] MROUTE: Add stats in multicast routing module method ip6_mr_forward(). 2008-04-13 23:59:13 -07:00
ipcomp6.c [IPCOMP]: Disable BH on output when using shared tfm 2008-02-28 11:23:17 -08:00
ipv6_sockglue.c [IPV6]: Share common code-paths for sticky socket options. 2008-04-13 23:21:52 -07:00
Kconfig [NET]: Sink IPv6 menuoptions into its own submenu 2008-04-13 23:30:47 -07:00
Makefile [IPV6] MROUTE: Support multicast forwarding. 2008-04-05 22:33:38 +09:00
mcast.c [IPV6]: Use in6addr_any where appropriate. 2008-04-12 13:43:20 +09:00
mip6.c [IPV6] MIP6: Use our standard definitions for paddings. 2008-04-12 13:43:22 +09:00
ndisc.c [IPV6]: Define constants for link-local multicast addresses. 2008-04-12 13:43:19 +09:00
netfilter.c [NETNS][IPV6] route6 - add netns parameter to ip6_route_output 2008-03-05 10:48:10 -08:00
proc.c [IPV6][NETNS]: Display per-net info in sockstat6 file. 2008-03-31 19:43:43 -07:00
protocol.c [IPV6]: Decentralize EXPORT_SYMBOLs. 2007-04-25 22:23:36 -07:00
raw.c [IPV6]: Fix IPV6_RECVERR for connected raw sockets. 2008-04-12 13:43:28 +09:00
reassembly.c [NET]: Rename inet_frag.h identifiers COMPLETE, FIRST_IN, LAST_IN to INET_FRAG_* 2008-03-28 16:35:27 -07:00
route.c [IPV6]: Make address arguments const. 2008-04-12 13:43:18 +09:00
sit.c [IPV6] SIT: Sparse: Use NULL pointer instead of 0. 2008-04-11 19:47:51 +09:00
syncookies.c [Syncookies]: Add support for TCP options via timestamps. 2008-04-10 03:12:40 -07:00
sysctl_net_ipv6.c [IPV6] SYSCTL: complete initialization for sysctl table in subsystem code. 2008-03-04 15:18:23 +09:00
tcp_ipv6.c [TCP]: Remove owner from tcp_seq_afinfo. 2008-04-13 22:13:53 -07:00
tunnel6.c [IPV6]: Replace sk_buff ** with sk_buff * in input handlers 2007-10-15 12:50:28 -07:00
udp_impl.h [UDP]: Make full use of proto.h.udp_hash innovation. 2008-03-22 16:51:21 -07:00
udp.c [IPv6]: Change IPv6 unspecified destination address to ::1 for raw and un-connected sockets 2008-04-12 13:43:27 +09:00
udplite.c [UDP]: Remove owner from udp_seq_afinfo. 2008-03-28 18:25:53 -07:00
xfrm6_input.c [XFRM] IPV6: Optimize xfrm6_input_addr(). 2008-03-25 10:23:56 +09:00
xfrm6_mode_beet.c [IPSEC]: Fix BEET output 2008-03-26 16:51:09 -07:00
xfrm6_mode_ro.c [IPSEC]: Make x->lastused an unsigned long 2008-01-28 14:53:52 -08:00
xfrm6_mode_transport.c [IPSEC]: Use IPv6 calling convention as the convention for x->mode->output 2007-10-10 16:55:54 -07:00
xfrm6_mode_tunnel.c [IPSEC]: Fix inter address family IPsec tunnel handling. 2008-03-24 14:51:51 -07:00
xfrm6_output.c [IPSEC]: Fix inter address family IPsec tunnel handling. 2008-03-24 14:51:51 -07:00
xfrm6_policy.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
xfrm6_state.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-27 18:48:56 -07:00
xfrm6_tunnel.c [XFRM] IPV6: Optimize __xfrm_tunnel_alloc_spi(). 2008-03-25 10:23:57 +09:00