37 lines
1013 B
Diff
37 lines
1013 B
Diff
|
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] 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.43.0
|
||
|
|