* grub-core/net/drivers/efi/efinet.c (get_card_packet): Fix buffer

allocation.
This commit is contained in:
Bean 2012-04-29 18:43:22 +02:00 committed by Vladimir 'phcoder' Serbinenko
parent 32745f5131
commit bdf8886428
2 changed files with 9 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2012-04-29 Bean <bean123ch@gmail.com>
* grub-core/net/drivers/efi/efinet.c (get_card_packet): Fix buffer
allocation.
2012-04-29 Mads Kiilerich <mads@kiilerich.com> (tiny) 2012-04-29 Mads Kiilerich <mads@kiilerich.com> (tiny)
* configure.ac: Detect starfield theme font path * configure.ac: Detect starfield theme font path

View file

@ -63,14 +63,13 @@ get_card_packet (const struct grub_net_card *dev)
grub_efi_uintn_t bufsize = 1536; grub_efi_uintn_t bufsize = 1536;
struct grub_net_buff *nb; struct grub_net_buff *nb;
nb = grub_netbuff_alloc (bufsize); nb = grub_netbuff_alloc (bufsize + 2);
if (!nb) if (!nb)
return NULL; return NULL;
/* Reserve 2 bytes so that 2 + 14/18 bytes of ethernet header is divisible /* Reserve 2 bytes so that 2 + 14/18 bytes of ethernet header is divisible
by 4. So that IP header is aligned on 4 bytes. */ by 4. So that IP header is aligned on 4 bytes. */
grub_netbuff_reserve (nb, 2); if (grub_netbuff_reserve (nb, 2))
if (!nb)
{ {
grub_netbuff_free (nb); grub_netbuff_free (nb);
return NULL; return NULL;
@ -84,14 +83,13 @@ get_card_packet (const struct grub_net_card *dev)
bufsize = ALIGN_UP (bufsize, 32); bufsize = ALIGN_UP (bufsize, 32);
nb = grub_netbuff_alloc (bufsize); nb = grub_netbuff_alloc (bufsize + 2);
if (!nb) if (!nb)
return NULL; return NULL;
/* Reserve 2 bytes so that 2 + 14/18 bytes of ethernet header is divisible /* Reserve 2 bytes so that 2 + 14/18 bytes of ethernet header is divisible
by 4. So that IP header is aligned on 4 bytes. */ by 4. So that IP header is aligned on 4 bytes. */
grub_netbuff_reserve (nb, 2); if (grub_netbuff_reserve (nb, 2))
if (!nb)
{ {
grub_netbuff_free (nb); grub_netbuff_free (nb);
return NULL; return NULL;