linux/net
Oliver Dawid 64233bffbb [APPLETALK]: Fix broadcast bug.
From: Oliver Dawid <oliver@helios.de>

we found a bug in net/appletalk/ddp.c concerning broadcast packets. In 
kernel 2.4 it was working fine. The bug first occured 4 years ago when 
switching to new SNAP layer handling. This bug can be splitted up into a 
sending(1) and reception(2) problem:

Sending(1)
In kernel 2.4 broadcast packets were sent to a matching ethernet device 
and atalk_rcv() was called to receive it as "loopback" (so loopback 
packets were shortcutted and handled in DDP layer).

When switching to the new SNAP structure, this shortcut was removed and 
the loopback packet was send to SNAP layer. The author forgot to replace 
the remote device pointer by the loopback device pointer before sending 
the packet to SNAP layer (by calling ddp_dl->request() ) therfor the 
packet was not sent back by underlying layers to ddp's atalk_rcv().

Reception(2)
In atalk_rcv() a packet received by this loopback mechanism contains now 
the (rigth) loopback device pointer (in Kernel 2.4 it was the (wrong) 
remote ethernet device pointer) and therefor no matching socket will be 
found to deliver this packet to. Because a broadcast packet should be 
send to the first matching socket (as it is done in many other protocols 
(?)), we removed the network comparison in broadcast case.

Below you will find a patch to correct this bug. Its diffed to kernel 
2.6.14-rc1

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-09-27 16:11:29 -07:00
..
802 [TR]: Set correct frame type for SNAP packets 2005-09-22 04:51:56 -03:00
8021q [8021Q]: Add endian annotations. 2005-09-19 15:41:28 -07:00
appletalk [APPLETALK]: Fix broadcast bug. 2005-09-27 16:11:29 -07:00
atm [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
ax25 [AX.25]: Reformat ax25_proto_ops initialization 2005-09-12 14:25:25 -07:00
bluetooth [Bluetooth] Prevent RFCOMM connections through the RAW socket 2005-09-13 01:32:31 +02:00
bridge [BRIDGE]: TSO fix in br_dev_queue_push_xmit 2005-09-22 23:35:34 -07:00
core [NET]: Fix module reference counts for loadable protocol modules 2005-09-27 15:23:38 -07:00
dccp [DCCP]: Introduce CCID getsockopt for the CCIDs 2005-09-18 00:19:32 -07:00
decnet [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
econet
ethernet [NET]: Slightly optimize ethernet address comparison. 2005-09-27 16:03:05 -07:00
ieee80211 Kconfig: IEEE80211 should not depend on NET_RADIO 2005-09-08 16:44:33 -04:00
ipv4 [NETFILTER]: Fix invalid module autoloading by splitting iptable_nat 2005-09-26 15:25:11 -07:00
ipv6 [IPV6]: Fix [Bug 5306] Oops on IPv6 route lookup 2005-09-26 15:10:16 -07:00
ipx
irda [IRDA]: *irttp cleanup 2005-09-24 16:55:17 -07:00
key
lapb
llc [LLC]: fix llc_ui_recvmsg, making it behave like tcp_recvmsg 2005-09-22 08:29:08 -03:00
netfilter [NETFILTER]: Fix HW checksum handling in nfnetlink_queue 2005-09-06 15:10:00 -07:00
netlink [NETLINK]: Don't prevent creating sockets when no kernel socket is registered 2005-09-06 15:43:59 -07:00
netrom [NETROM]: Introduct stuct nr_private 2005-09-12 14:28:03 -07:00
packet [AF_PACKET]: Remove bogus checks added to packet_sendmsg(). 2005-09-26 15:23:58 -07:00
rose [ROSE]: fix typo (regeistration) 2005-09-27 15:45:15 -07:00
rxrpc
sched [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
sctp [SCTP]: Fix SCTP_SHUTDOWN notifications. 2005-09-22 23:48:38 -07:00
sunrpc [PATCH] Code cleanups in calbacks in svcsock 2005-09-13 08:22:32 -07:00
unix
wanrouter
x25
xfrm [XFRM]: Always release dst_entry on error in xfrm_lookup 2005-09-08 15:11:55 -07:00
compat.c [PATCH] Fix 32bit sendmsg() flaw 2005-09-08 08:14:11 -07:00
Kconfig [NETFILTER] move nfnetlink options to right location in kconfig menu 2005-09-17 00:41:21 -07:00
Makefile
nonet.c
socket.c [NET]: Fix module reference counts for loadable protocol modules 2005-09-27 15:23:38 -07:00
sysctl_net.c
TUNABLE