]> git.ipfire.org Git - thirdparty/glibc.git/commit
resolv: Fix a few unaligned accesses to fields in HEADER
authorLudwig Rydberg <ludwig.rydberg@gaisler.com>
Mon, 11 Dec 2023 12:50:41 +0000 (13:50 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Tue, 12 Dec 2023 08:42:55 +0000 (09:42 +0100)
commitfc039ce8502d236f11074eb58468be24b4fa8cc7
tree00222e9612157636431bd30d5d2ede9ad5dbd602
parent4753e9286858a61d5fbe8742d48d8c9166143354
resolv: Fix a few unaligned accesses to fields in HEADER

After refactoring the alloca usage in 40c0add7d4 ("resolve: Remove
__res_context_query alloca usage") a few unaligned accesses to HEADER
fields surfaced. These unaligned accesses led to problems when running
the resolv test suite on sparc32-linux (leon) as many tests failed due to
SIGBUS crashes.

The issue(s) occured during T_QUERY_A_AND_AAAA queries as the second query
now can start on an unaligned address (previously it was explicitly aligned).

With this patch the unaligned accesses are now fixed by using the
UHEADER instead to ensure the fields are accessed with byte
loads/stores.

The patch has been verfied by running the resolv test suite on sparc32
and x86_64.

Signed-off-by: Ludwig Rydberg <ludwig.rydberg@gaisler.com>
Signed-off-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
resolv/res_mkquery.c
resolv/res_queriesmatch.c