1
linux/net/802
David Ward 67378563df net/garp: avoid infinite loop if attribute already exists
An infinite loop occurred if garp_attr_create was called with the values
of an existing attribute. This might happen if a previous leave request
for the attribute has not yet been followed by a PDU transmission (or,
if the application previously issued a join request for the attribute
and is now issuing another one, without having issued a leave request).

If garp_attr_create finds an existing attribute having the same values,
return the address to it. Its state will then get updated (i.e., if it
was in a leaving state, it will move into a non-leaving state and not
get deleted during the next PDU transmission).

To accomplish this fix, collapse garp_attr_insert into garp_attr_create
(which is its only caller).

Thanks to Jorge Boncompte [DTI2] <jorge@dti2.net> for contributing to
this fix.

Signed-off-by: David Ward <david.ward@ll.mit.edu>
Acked-by: Jorge Boncompte [DTI2] <jorge@dti2.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-04-01 16:47:11 -04:00
..
fc.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
fddi.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
garp.c net/garp: avoid infinite loop if attribute already exists 2012-04-01 16:47:11 -04:00
hippi.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
Kconfig
Makefile
p8022.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
p8023.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
psnap.c snap: remove one synchronize_net() 2011-05-23 16:29:24 -04:00
stp.c net: Fix files explicitly needing to include module.h 2011-10-31 19:30:28 -04:00
tr.c net: return operator cleanup 2010-09-23 14:33:39 -07:00