resolver: take ownership of resolved attributes
authorSam Hartman <hartmans@painless-security.com>
Wed, 4 Sep 2013 12:07:38 +0000 (08:07 -0400)
committerSam Hartman <hartmans@painless-security.com>
Wed, 4 Sep 2013 12:07:38 +0000 (08:07 -0400)
The resolution context frees resolved attributes when destroyed.  Take ownership of attributes we return to the caller.

src/shibresolver/resolver.cpp

index dd7bbbf..71fb673 100644 (file)
@@ -517,8 +517,10 @@ void RemotedResolver::resolve(
                     )
                 );
             resolver->resolveAttributes(*ctx.get());
-            if (!ctx->getResolvedAttributes().empty())
-                resolvedAttrs.insert(resolvedAttrs.end(), ctx->getResolvedAttributes().begin(), ctx->getResolvedAttributes().end());
+            if (!ctx->getResolvedAttributes().empty()) {
+               resolvedAttrs.insert(resolvedAttrs.end(), ctx->getResolvedAttributes().begin(), ctx->getResolvedAttributes().end());
+               ctx->getResolvedAttributes().clear();
+           }
         }
     }
     catch (exception& ex) {