summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorDavid Ward <david.ward@ll.mit.edu>2012-03-27 11:01:52 +0200
committerDavid S. Miller <davem@davemloft.net>2012-04-01 22:47:11 +0200
commit67378563df2e168d32a4054616f244a91aec462d (patch)
treeef7a14168f63eedbdcfdc0f3345d48dc21cbd352 /virt
parentMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linvil... (diff)
downloadlinux-67378563df2e168d32a4054616f244a91aec462d.tar.xz
linux-67378563df2e168d32a4054616f244a91aec462d.zip
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>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions