summaryrefslogtreecommitdiff
path: root/getaddrinfo-translate-ENOMEM-to-EAI_MEMORY-bug-31163.patch
diff options
context:
space:
mode:
Diffstat (limited to 'getaddrinfo-translate-ENOMEM-to-EAI_MEMORY-bug-31163.patch')
-rw-r--r--getaddrinfo-translate-ENOMEM-to-EAI_MEMORY-bug-31163.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/getaddrinfo-translate-ENOMEM-to-EAI_MEMORY-bug-31163.patch b/getaddrinfo-translate-ENOMEM-to-EAI_MEMORY-bug-31163.patch
new file mode 100644
index 0000000..29a633d
--- /dev/null
+++ b/getaddrinfo-translate-ENOMEM-to-EAI_MEMORY-bug-31163.patch
@@ -0,0 +1,36 @@
+From ae1e5217021e43e1f2de443d26e87ea3adfb221c Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@suse.de>
+Date: Wed, 6 Dec 2023 14:48:22 +0100
+Subject: [PATCH 8/9] getaddrinfo: translate ENOMEM to EAI_MEMORY (bug 31163)
+
+When __resolv_context_get returns NULL due to out of memory, translate it
+to a return value of EAI_MEMORY.
+
+(cherry picked from commit 5eabdb6a6ac1599d23dd5966a37417215950245f)
+---
+ sysdeps/posix/getaddrinfo.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+index 13082305d3..da573bea24 100644
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -616,7 +616,14 @@ get_nss_addresses (const char *name, const struct addrinfo *req,
+ function variant. */
+ res_ctx = __resolv_context_get ();
+ if (res_ctx == NULL)
+- no_more = 1;
++ {
++ if (errno == ENOMEM)
++ {
++ result = -EAI_MEMORY;
++ goto out;
++ }
++ no_more = 1;
++ }
+
+ while (!no_more)
+ {
+--
+2.33.0
+