$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r84876 - trunk/boost/asio/ssl/impl
From: chris_at_[hidden]
Date: 2013-06-22 08:45:33
Author: chris_kohlhoff
Date: 2013-06-22 08:45:33 EDT (Sat, 22 Jun 2013)
New Revision: 84876
URL: http://svn.boost.org/trac/boost/changeset/84876
Log:
Fix memory leak in ssl::rfc2818_verification class.
Text files modified: 
   trunk/boost/asio/ssl/impl/rfc2818_verification.ipp |    10 ++++++++++                              
   1 files changed, 10 insertions(+), 0 deletions(-)
Modified: trunk/boost/asio/ssl/impl/rfc2818_verification.ipp
==============================================================================
--- trunk/boost/asio/ssl/impl/rfc2818_verification.ipp	Sat Jun 22 08:44:53 2013	(r84875)
+++ trunk/boost/asio/ssl/impl/rfc2818_verification.ipp	2013-06-22 08:45:33 EDT (Sat, 22 Jun 2013)	(r84876)
@@ -70,7 +70,10 @@
         const char* pattern = reinterpret_cast<const char*>(domain->data);
         std::size_t pattern_length = domain->length;
         if (match_pattern(pattern, pattern_length, host_.c_str()))
+        {
+          GENERAL_NAMES_free(gens);
           return true;
+        }
       }
     }
     else if (gen->type == GEN_IPADD && is_address)
@@ -82,17 +85,24 @@
         {
           ip::address_v4::bytes_type bytes = address.to_v4().to_bytes();
           if (memcmp(bytes.data(), ip_address->data, 4) == 0)
+          {
+            GENERAL_NAMES_free(gens);
             return true;
+          }
         }
         else if (address.is_v6() && ip_address->length == 16)
         {
           ip::address_v6::bytes_type bytes = address.to_v6().to_bytes();
           if (memcmp(bytes.data(), ip_address->data, 16) == 0)
+          {
+            GENERAL_NAMES_free(gens);
             return true;
+          }
         }
       }
     }
   }
+  GENERAL_NAMES_free(gens);
 
   // No match in the alternate names, so try the common names. We should only
   // use the "most specific" common name, which is the last one in the list.