]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2229. [bug] Null pointer dereference on dispatch pool creation
authorMark Andrews <marka@isc.org>
Thu, 6 Sep 2007 10:00:19 +0000 (10:00 +0000)
committerMark Andrews <marka@isc.org>
Thu, 6 Sep 2007 10:00:19 +0000 (10:00 +0000)
                        failure. [RT #17133]

CHANGES
lib/dns/resolver.c

diff --git a/CHANGES b/CHANGES
index 196616492112107d7aba6ad14df2096361050eb3..a725e58115551141e22ac2178f2f6a4fdfa7bb23 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2229.  [bug]           Null pointer dereference on dispatch pool creation
+                       failure. [RT #17133]
+
 2228.  [contrib]       contrib: Change 2188 was incomplete.
 
 2227.  [cleanup]       Tidied up the FAQ. [RT #17121]
index 72b8b08dd9a9dd860e07487544b0cef032474ad2..727b406d739567f1e077720f7debb6b6821535f2 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: resolver.c,v 1.350 2007/08/28 01:37:18 marka Exp $ */
+/* $Id: resolver.c,v 1.351 2007/09/06 10:00:19 marka Exp $ */
 
 /*! \file */
 
@@ -7490,17 +7490,17 @@ dns_resolver_createdispatchpool(dns_resolver_t *res, unsigned int ndisps,
        return (result);
 
   cleanup:
-       for (i = 0; i < ndisps; i++) {
-               if (res->dispatchv4pool[i] != NULL)
-                       dns_dispatch_detach(&res->dispatchv4pool[i]);
-               if (res->dispatchv6pool[i] != NULL)
-                       dns_dispatch_detach(&res->dispatchv6pool[i]);
-       }
        if (res->dispatchv4pool != NULL) {
+               for (i = 0; i < ndisps; i++)
+                       if (res->dispatchv4pool[i] != NULL)
+                               dns_dispatch_detach(&res->dispatchv4pool[i]);
                isc_mem_put(res->mctx, res->dispatchv4pool,
                            sizeof(dns_dispatch_t *) * ndisps);
        }
        if (res->dispatchv6pool != NULL) {
+               for (i = 0; i < ndisps; i++)
+                       if (res->dispatchv6pool[i] != NULL)
+                               dns_dispatch_detach(&res->dispatchv6pool[i]);
                isc_mem_put(res->mctx, res->dispatchv6pool,
                            sizeof(dns_dispatch_t *) * ndisps);
        }