forked from rpms/glibc
e43852d149
* Thu Oct 13 2022 Arjun Shankar <arjun@redhat.com> - 2.34-48 - Handle non-hostname CNAME aliases during name resolution (#2129005) - Sync with upstream branch release/2.34/master, commit e3976287b22422787f3cc6fc9adda58304b55bd9: - nscd: Drop local address tuple variable [BZ #29607] - x86-64: Require BMI1/BMI2 for AVX2 strrchr and wcsrchr implementations - x86-64: Require BMI2 and LZCNT for AVX2 memrchr implementation - x86-64: Require BMI2 for AVX2 (raw|w)memchr implementations - x86-64: Require BMI2 for AVX2 wcs(n)cmp implementations - x86-64: Require BMI2 for AVX2 strncmp implementation - x86-64: Require BMI2 for AVX2 strcmp implementation - x86-64: Require BMI2 for AVX2 str(n)casecmp implementations - x86: include BMI1 and BMI2 in x86-64-v3 level - nptl: Add backoff mechanism to spinlock loop - sysdeps: Add 'get_fast_jitter' interace in fast-jitter.h - nptl: Effectively skip CAS in spinlock loop - Move assignment out of the CAS condition - Add LLL_MUTEX_READ_LOCK [BZ #28537] - Avoid extra load with CAS in __pthread_mutex_clocklock_common [BZ #28537] - Avoid extra load with CAS in __pthread_mutex_lock_full [BZ #28537] - resolv: Fix building tst-resolv-invalid-cname for earlier C standards - nss_dns: Rewrite _nss_dns_gethostbyname4_r using current interfaces - resolv: Add new tst-resolv-invalid-cname - nss_dns: In gaih_getanswer_slice, skip strange aliases (bug 12154) (#2129005) - nss_dns: Rewrite getanswer_r to match getanswer_ptr (bug 12154, bug 29305) - nss_dns: Remove remnants of IPv6 address mapping - nss_dns: Rewrite _nss_dns_gethostbyaddr2_r and getanswer_ptr - nss_dns: Split getanswer_ptr from getanswer_r - resolv: Add DNS packet parsing helpers geared towards wire format - resolv: Add internal __ns_name_length_uncompressed function - resolv: Add the __ns_samebinaryname function - resolv: Add internal __res_binary_hnok function - resolv: Add tst-resolv-aliases - resolv: Add tst-resolv-byaddr for testing reverse lookup - gconv: Use 64-bit interfaces in gconv_parseconfdir (bug 29583) - elf: Fix hwcaps string size overestimation - nscd: Fix netlink cache invalidation if epoll is used [BZ #29415] - Apply asm redirections in wchar.h before first use - Apply asm redirections in stdio.h before first use [BZ #27087] - elf: Call __libc_early_init for reused namespaces (bug 29528) Resolves: #2129005 Resolves: #2116960
41 lines
1.6 KiB
Diff
41 lines
1.6 KiB
Diff
commit 2b3d020055bea4fbbfc0ca2362d46038487c6dfd
|
|
Author: Fabian Vogt <fvogt@suse.de>
|
|
Date: Wed Jul 27 11:44:07 2022 +0200
|
|
|
|
nscd: Fix netlink cache invalidation if epoll is used [BZ #29415]
|
|
|
|
Processes cache network interface information such as whether IPv4 or IPv6
|
|
are enabled. This is only checked again if the "netlink timestamp" provided
|
|
by nscd changed, which is triggered by netlink socket activity.
|
|
|
|
However, in the epoll handler for the netlink socket, it was missed to
|
|
assign the new timestamp to the nscd database. The handler for plain poll
|
|
did that properly, copy that over.
|
|
|
|
This bug caused that e.g. processes which started before network
|
|
configuration got unusuable addresses from getaddrinfo, like IPv6 only even
|
|
though only IPv4 is available:
|
|
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1041
|
|
|
|
It's a bit hard to reproduce, so I verified this by checking the timestamp
|
|
on calls to __check_pf manually. Without this patch it's stuck at 1, now
|
|
it's increasing on network changes as expected.
|
|
|
|
Signed-off-by: Fabian Vogt <fvogt@suse.de>
|
|
(cherry picked from commit 02ca25fef2785974011e9c5beecc99b900b69fd7)
|
|
|
|
diff --git a/nscd/connections.c b/nscd/connections.c
|
|
index 3f0bda4e97edb9df..bc941715cff47c49 100644
|
|
--- a/nscd/connections.c
|
|
+++ b/nscd/connections.c
|
|
@@ -2285,7 +2285,8 @@ main_loop_epoll (int efd)
|
|
sizeof (buf))) != -1)
|
|
;
|
|
|
|
- __bump_nl_timestamp ();
|
|
+ dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]
|
|
+ = __bump_nl_timestamp ();
|
|
}
|
|
# endif
|
|
else
|