From: Zqiang <[email protected]>

Fix issue 48
Reference to upstream patch:
https://gitlab.freedesktop.org/slirp/libslirp/-/commit/c9f314f6e315a5518432761fea864196a290f799

Signed-off-by: Zqiang <[email protected]>
---
 meta/recipes-devtools/qemu/qemu.inc           |  1 +
 ...1-Fix-DHCP-broken-in-libslirp-v4.6.0.patch | 32 +++++++++++++++++++
 2 files changed, 33 insertions(+)
 create mode 100644 
meta/recipes-devtools/qemu/qemu/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch

diff --git a/meta/recipes-devtools/qemu/qemu.inc 
b/meta/recipes-devtools/qemu/qemu.inc
index 3921546df7..bed175e59d 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -57,6 +57,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
            file://CVE-2020-27821.patch \
            file://CVE-2021-20263.patch \
            file://CVE-2021-3392.patch \
+           file://0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git 
a/meta/recipes-devtools/qemu/qemu/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch 
b/meta/recipes-devtools/qemu/qemu/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch
new file mode 100644
index 0000000000..480dcee05e
--- /dev/null
+++ 
b/meta/recipes-devtools/qemu/qemu/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch
@@ -0,0 +1,32 @@
+From c9f314f6e315a5518432761fea864196a290f799 Mon Sep 17 00:00:00 2001
+From: Akihiro Suda <[email protected]>
+Date: Thu, 17 Jun 2021 18:01:32 +0900
+Subject: [PATCH] Fix "DHCP broken in libslirp v4.6.0"
+
+Fix issue 48
+Reference to upstream patch:
+https://gitlab.freedesktop.org/slirp/libslirp/-/commit/c9f314f6e315a5518432761fea864196a290f799
+
+Signed-off-by: Akihiro Suda <[email protected]>
+---
+ src/bootp.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/bootp.c b/src/bootp.c
+index cafa1eb..0a35873 100644
+--- a/slirp/src/bootp.c
++++ b/slirp/src/bootp.c
+@@ -359,7 +359,9 @@ static void bootp_reply(Slirp *slirp,
+ 
+     daddr.sin_addr.s_addr = 0xffffffffu;
+ 
+-    m->m_len = sizeof(struct bootp_t) - sizeof(struct ip) - sizeof(struct 
udphdr);
++    assert ((q - rbp->bp_vend + 1) <= DHCP_OPT_LEN);
++
++    m->m_len = sizeof(struct bootp_t) + (q - rbp->bp_vend + 1) - 
sizeof(struct ip) - sizeof(struct udphdr);
+     udp_output(NULL, m, &saddr, &daddr, IPTOS_LOWDELAY);
+ }
+ 
+-- 
+2.17.1
+
-- 
2.17.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154408): 
https://lists.openembedded.org/g/openembedded-core/message/154408
Mute This Topic: https://lists.openembedded.org/mt/84656330/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to