grub-core: fix endianness problem

Fix tftp stalls on loading files bigger than ~32k bug by cherry picking
a patch from grub upstream.

(From OE-Core rev: adac8c63a0eefd3ce118f8964b05a952e629da38)

Signed-off-by: Shan Hai <shan.hai@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Shan Hai
2014-07-18 13:21:37 +08:00
committed by Richard Purdie
parent 7d1fed2975
commit 63ee154720
2 changed files with 45 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
grub-core/net/tftp.c: fix endianness problem.
* grub-core/net/tftp.c (ack): Fix endianness problem.
(tftp_receive): Likewise.
Reported by: Michael Davidsaver.
Upstream-Status: Backport
diff --git a/ChangeLog b/ChangeLog
index 81bdae9..c2f42d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-07-02 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/net/tftp.c (ack): Fix endianness problem.
+ (tftp_receive): Likewise.
+ Reported by: Michael Davidsaver.
+
2012-06-27 Vladimir Serbinenko <phcoder@gmail.com>
* configure.ac: Bump version to 2.00.
diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c
index 9c70efb..d0f39ea 100644
--- a/grub-core/net/tftp.c
+++ b/grub-core/net/tftp.c
@@ -143,7 +143,7 @@ ack (tftp_data_t data, grub_uint16_t block)
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 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)),
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;

View File

@@ -22,6 +22,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
file://check-if-liblzma-is-disabled.patch \
file://fix-issue-with-flex-2.5.37.patch \
file://grub-2.00-add-oe-kernel.patch \
file://fix-endianness-problem.patch \
"
SRC_URI[md5sum] = "e927540b6eda8b024fb0391eeaa4091c"