aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2018-03-27 12:16:11 +0200
committerAndreas Schwab <schwab@suse.de>2018-03-27 17:26:32 +0200
commitf178e59fa5eefbbd37fde040ae8334aa5c857ee1 (patch)
treed23e236dd00c5b54e13226f2c32c2be64bc0515f
parent5f45f96ad09d7f80172b45dca16d6ca2baeea2a8 (diff)
downloadglibc-f178e59fa5eefbbd37fde040ae8334aa5c857ee1.zip
glibc-f178e59fa5eefbbd37fde040ae8334aa5c857ee1.tar.gz
glibc-f178e59fa5eefbbd37fde040ae8334aa5c857ee1.tar.bz2
Fix crash in resolver on memory allocation failure (bug 23005)
-rw-r--r--ChangeLog6
-rw-r--r--resolv/res_send.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 111623d..77751d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-03-27 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23005]
+ * resolv/res_send.c (__res_context_send): Return ENOMEM if
+ allocation of private copy of nsaddr_list fails.
+
2018-03-26 Joseph Myers <joseph@codesourcery.com>
[BZ #16552]
diff --git a/resolv/res_send.c b/resolv/res_send.c
index dde0425..7debf14 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -471,6 +471,11 @@ __res_context_send (struct resolv_context *ctx,
'\0',
sizeof (struct sockaddr_in6)
- sizeof (struct sockaddr_in));
+ else
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
}
EXT(statp).nscount = statp->nscount;
}