diff options
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.patch | 57 |
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 + |