В Fri, 31 Jan 2014 13:35:11 -0200 Paulo Flabiano Smorigo <pfsmor...@linux.vnet.ibm.com> пишет:
> * grub-core/net/arp.c (grub_net_arp_receive): Trim arp packets with abnormal > size. > > GRUB uses arp request to create the arp response. If the incoming packet is > foobared, GRUB needs to trim the arp response packet before sending it. > > This is just a fix in time for 2.02. I'm planning to rewrite the arp response > code > after the release. > > diff --git a/ChangeLog b/ChangeLog > index cfa9c83..10e9c3d 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,11 @@ > +2014-01-31 Paulo Flabiano Smorigo <pfsmor...@br.ibm.com> > + > + * grub-core/net/arp.c (grub_net_arp_receive): Trim arp packets with > + abnormal size. > + > + GRUB uses arp request to create the arp response. If the incoming > packet is > + foobared, GRUB needs to trim the arp response packet before sending it. > + > 2014-01-29 Vladimir Serbinenko <phco...@gmail.com> > > * grub-core/disk/ahci.c: Increase timeout. Some SSDs take up to > diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c > index d62d0cc..77581f4 100644 > --- a/grub-core/net/arp.c > +++ b/grub-core/net/arp.c > @@ -162,6 +162,12 @@ grub_net_arp_receive (struct grub_net_buff *nb, > if (grub_net_addr_cmp (&inf->address, &target_addr) == 0 > && grub_be_to_cpu16 (arp_header->op) == ARP_REQUEST) > { > + if ((nb->tail - nb->data) > 50) Using large ping size is quite common during network troubleshooting. This looks like rather arbitrary restriction. I'd say - if we were able to receive packet we should be able to also send packet of the same size; what problem does it fix? > + { > + grub_dprintf ("net", "arp packet with abnormal size (%ld > bytes).\n", > + nb->tail - nb->data); > + nb->tail = nb->data + 50; > + } > grub_net_link_level_address_t target; > /* We've already checked that pln is either 4 or 16. */ > char tmp[16]; > _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel