Explorar o código

InternalMessageDigestImpl: Fix memory leak

Tatsuhiro Tsujikawa %!s(int64=12) %!d(string=hai) anos
pai
achega
c81fd8e194
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/InternalMessageDigestImpl.cc

+ 2 - 1
src/InternalMessageDigestImpl.cc

@@ -49,7 +49,7 @@ template<size_t dlen,
          void (*free_fn)(ctx_t**)>
 class MessageDigestBase : public MessageDigestImpl {
 public:
-  MessageDigestBase() { reset(); }
+  MessageDigestBase() : ctx_(nullptr) { reset(); }
   virtual ~MessageDigestBase()
   {
     free_fn(&ctx_);
@@ -65,6 +65,7 @@ public:
   }
   virtual void reset() CXX11_OVERRIDE
   {
+    free_fn(&ctx_);
     init_fn(&ctx_);
   }
   virtual void update(const void* data, size_t length) CXX11_OVERRIDE