Fix memory leaks.
authormdw <mdw>
Thu, 22 Feb 2001 09:04:39 +0000 (09:04 +0000)
committermdw <mdw>
Thu, 22 Feb 2001 09:04:39 +0000 (09:04 +0000)
oaep.c

diff --git a/oaep.c b/oaep.c
index 301e63b..becd058 100644 (file)
--- a/oaep.c
+++ b/oaep.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: oaep.c,v 1.2 2000/07/15 10:01:48 mdw Exp $
+ * $Id: oaep.c,v 1.3 2001/02/22 09:04:39 mdw Exp $
  *
  * Optimal asymmetric encryption packing
  *
@@ -30,6 +30,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: oaep.c,v $
+ * Revision 1.3  2001/02/22 09:04:39  mdw
+ * Fix memory leaks.
+ *
  * Revision 1.2  2000/07/15 10:01:48  mdw
  * Test rig added, based on RIPEMD160-MGF1 test vectors.
  *
@@ -71,7 +74,7 @@ int oaep_encode(const void *msg, size_t msz, void *buf, size_t sz, void *p)
 {
   oaep *o = p;
   size_t hsz = o->ch->hashsz;
-  ghash *h = o->ch->init();
+  ghash *h;
   octet *q, *mq, *qq;
   octet *pp;
   gcipher *c;
@@ -92,6 +95,7 @@ int oaep_encode(const void *msg, size_t msz, void *buf, size_t sz, void *p)
 
   /* --- Fill in the rest of the buffer --- */
 
+  h = o->ch->init();
   h->ops->hash(h, o->ep, o->epsz);
   h->ops->done(h, mq);
   h->ops->destroy(h);
@@ -173,6 +177,7 @@ int oaep_decode(const void *buf, size_t sz, dstr *d, void *p)
   h = o->ch->init();
   h->ops->hash(h, o->ep, o->epsz);
   h->ops->done(h, q);
+  h->ops->destroy(h);
   if (memcmp(q, mq, hsz) != 0)
     goto fail;
 
@@ -228,7 +233,7 @@ static int verify(dstr *v)
   dstr_ensure(&d, v[3].len);
   d.len = v[3].len;
   gr.r.ops = &gops;
-  gr.buf = v[2].buf;
+  gr.buf = (octet *)v[2].buf;
 
   o.cc = &rmd160_mgf;
   o.ch = &rmd160;