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.c [IPV6] MROUTE: Do not call ipv6_find_idev() directly. 2008-04-13 23:21:16 -07:00
addrconf_core.c
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
anycast.c [IPV6]: Unify ip6_onlink() and ipip6_onlink(). 2008-04-03 10:06:00 +09:00
datagram.c
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.c
exthdrs_core.c
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
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
ip6mr.c [IPV6] MROUTE: Add stats in multicast routing module method ip6_mr_forward(). 2008-04-13 23:59:13 -07:00
ipcomp6.c
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
proc.c [IPV6][NETNS]: Display per-net info in sockstat6 file. 2008-03-31 19:43:43 -07:00
protocol.c
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
tcp_ipv6.c [TCP]: Remove owner from tcp_seq_afinfo. 2008-04-13 22:13:53 -07:00
tunnel6.c
udp.c [IPv6]: Change IPv6 unspecified destination address to ::1 for raw and un-connected sockets 2008-04-12 13:43:27 +09:00
udp_impl.h [UDP]: Make full use of proto.h.udp_hash innovation. 2008-03-22 16:51:21 -07: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
xfrm6_mode_transport.c
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