summaryrefslogtreecommitdiff
path: root/0026-resolv-Fix-some-unaligned-accesses-in-resolver-BZ-30.patch
diff options
context:
space:
mode:
Diffstat (limited to '0026-resolv-Fix-some-unaligned-accesses-in-resolver-BZ-30.patch')
-rw-r--r--0026-resolv-Fix-some-unaligned-accesses-in-resolver-BZ-30.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/0026-resolv-Fix-some-unaligned-accesses-in-resolver-BZ-30.patch b/0026-resolv-Fix-some-unaligned-accesses-in-resolver-BZ-30.patch
new file mode 100644
index 0000000..38d2a39
--- /dev/null
+++ b/0026-resolv-Fix-some-unaligned-accesses-in-resolver-BZ-30.patch
@@ -0,0 +1,57 @@
+From 5aa4bb67b9cbd334789199c03c9d30b90662a313 Mon Sep 17 00:00:00 2001
+From: John David Anglin <danglin@gcc.gnu.org>
+Date: Wed, 13 Sep 2023 11:04:41 +0000
+Subject: [PATCH 26/26] resolv: Fix some unaligned accesses in resolver [BZ
+ #30750]
+
+Signed-off-by: John David Anglin <dave.anglin@bell.net>
+---
+ resolv/res_nameinquery.c | 3 ++-
+ resolv/res_queriesmatch.c | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/resolv/res_nameinquery.c b/resolv/res_nameinquery.c
+index 24172700e1..ca56bc9283 100644
+--- a/resolv/res_nameinquery.c
++++ b/resolv/res_nameinquery.c
+@@ -84,6 +84,7 @@
+
+ #include <arpa/nameser.h>
+ #include <resolv.h>
++#include <resolv/resolv-internal.h>
+
+ /* Author: paul vixie, 29may94. */
+ int
+@@ -91,7 +92,7 @@ __libc_res_nameinquery (const char *name, int type, int class,
+ const unsigned char *buf, const unsigned char *eom)
+ {
+ const unsigned char *cp = buf + HFIXEDSZ;
+- int qdcount = ntohs (((HEADER *) buf)->qdcount);
++ int qdcount = ntohs (((UHEADER *) buf)->qdcount);
+
+ while (qdcount-- > 0)
+ {
+diff --git a/resolv/res_queriesmatch.c b/resolv/res_queriesmatch.c
+index 13a6936c47..ba1c1d0c0c 100644
+--- a/resolv/res_queriesmatch.c
++++ b/resolv/res_queriesmatch.c
+@@ -83,6 +83,7 @@
+ */
+
+ #include <resolv.h>
++#include <resolv/resolv-internal.h>
+
+ /* Author: paul vixie, 29may94. */
+ int
+@@ -102,7 +103,7 @@ __libc_res_queriesmatch (const unsigned char *buf1, const unsigned char *eom1,
+ order. We can compare it with the second buffer's QDCOUNT
+ value without doing this. */
+ int qdcount = ((HEADER *) buf1)->qdcount;
+- if (qdcount != ((HEADER *) buf2)->qdcount)
++ if (qdcount != ((UHEADER *) buf2)->qdcount)
+ return 0;
+
+ qdcount = htons (qdcount);
+--
+2.33.0
+