]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2275] valgrind fix: store singleton instance in auto_ptr
authorJelte Jansen <jelte@isc.org>
Wed, 3 Oct 2012 14:42:08 +0000 (16:42 +0200)
committerJelte Jansen <jelte@isc.org>
Wed, 3 Oct 2012 14:42:08 +0000 (16:42 +0200)
src/lib/acl/dns.cc

index d16ec658d32f5a1581edee3e4ba0120ebf16f56c..d164398283836450843703daa27f2e2bd44c9b14 100644 (file)
@@ -106,10 +106,10 @@ internal::RequestCheckCreator::create(const string& name,
 
 RequestLoader&
 getRequestLoader() {
-    static RequestLoader* loader(NULL);
-    if (loader == NULL) {
+    static auto_ptr<RequestLoader> loader(NULL);
+    if (loader.get() == NULL) {
         // Creator registration may throw, so we first store the new loader
-        // in an auto pointer in order to provide the strong exception
+        // in a second auto pointer in order to provide the strong exception
         // guarantee.
         auto_ptr<RequestLoader> loader_ptr =
             auto_ptr<RequestLoader>(new RequestLoader(REJECT));
@@ -129,7 +129,7 @@ getRequestLoader() {
                 new LogicCreator<AllOfSpec, RequestContext>("ALL")));
 
         // From this point there shouldn't be any exception thrown
-        loader = loader_ptr.release();
+        loader.reset(loader_ptr.release());
     }
 
     return (*loader);