From 700756844d6321cc15408bc408a46ec333d32074 Mon Sep 17 00:00:00 2001 From: Doug Barton Date: Thu, 18 Aug 2005 19:12:08 +0000 Subject: This issue was researched by glebius, and this patch was incorporated by ISC into the next version of BIND. The patch addresses a problem with high-load resolvers which hit memory barriers. Without this patch, running the resolving name server out of memory would lead to "unpredictable results." Of course, the canonical answer to this problem is to put more memory into the system, however that is not always possible, and the code should be able to handle this situation gracefully in any case. Approved by: portmgr (krion) --- dns/bind9/files/patch-lib_dns_resolver.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 dns/bind9/files/patch-lib_dns_resolver.c (limited to 'dns/bind9/files/patch-lib_dns_resolver.c') diff --git a/dns/bind9/files/patch-lib_dns_resolver.c b/dns/bind9/files/patch-lib_dns_resolver.c new file mode 100644 index 000000000000..5605bb71f3ec --- /dev/null +++ b/dns/bind9/files/patch-lib_dns_resolver.c @@ -0,0 +1,23 @@ +--- lib/dns/resolver.c.orig Tue Feb 8 15:59:44 2005 ++++ lib/dns/resolver.c Wed Aug 17 02:42:48 2005 +@@ -2665,7 +2665,7 @@ + unsigned int options, unsigned int bucketnum, fetchctx_t **fctxp) + { + fetchctx_t *fctx; +- isc_result_t result = ISC_R_SUCCESS; ++ isc_result_t result; + isc_result_t iresult; + isc_interval_t interval; + dns_fixedname_t qdomain; +@@ -2687,8 +2687,10 @@ + strcat(buf, "/"); /* checked */ + strcat(buf, typebuf); /* checked */ + fctx->info = isc_mem_strdup(res->mctx, buf); +- if (fctx->info == NULL) ++ if (fctx->info == NULL) { ++ result = ISC_R_NOMEMORY; + goto cleanup_fetch; ++ } + FCTXTRACE("create"); + dns_name_init(&fctx->name, NULL); + result = dns_name_dup(name, res->mctx, &fctx->name); -- cgit v1.2.3