summaryrefslogtreecommitdiff
path: root/sys-boot/grub/files/grub-2.00-tftp-endian.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-boot/grub/files/grub-2.00-tftp-endian.patch')
-rw-r--r--sys-boot/grub/files/grub-2.00-tftp-endian.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/sys-boot/grub/files/grub-2.00-tftp-endian.patch b/sys-boot/grub/files/grub-2.00-tftp-endian.patch
new file mode 100644
index 00000000..f4e56445
--- /dev/null
+++ b/sys-boot/grub/files/grub-2.00-tftp-endian.patch
@@ -0,0 +1,24 @@
+https://bugs.gentoo.org/show_bug.cgi?id=438612
+
+=== modified file 'grub-core/net/tftp.c'
+--- grub-core/net/tftp.c 2012-06-22 20:04:16 +0000
++++ grub-core/net/tftp.c 2012-07-02 09:22:50 +0000
+@@ -143,7 +143,7 @@
+
+ tftph_ack = (struct tftphdr *) nb_ack.data;
+ tftph_ack->opcode = grub_cpu_to_be16 (TFTP_ACK);
+- tftph_ack->u.ack.block = block;
++ tftph_ack->u.ack.block = grub_cpu_to_be16 (block);
+
+ err = grub_net_send_udp_packet (data->sock, &nb_ack);
+ if (err)
+@@ -225,7 +225,7 @@
+ grub_priority_queue_pop (data->pq);
+
+ if (file->device->net->packs.count < 50)
+- err = ack (data, tftph->u.data.block);
++ err = ack (data, data->block + 1);
+ else
+ {
+ file->device->net->stall = 1;
+