updates
[silc.git] / lib / silcske / silcske.c
index a7747bba2e16ec078257c5c06b1ef5540423dffc..612abd81dea4f09920e12746caf2d11b85e7f47e 100644 (file)
@@ -72,8 +72,7 @@ void silc_ske_free(SilcSKE ske)
 
     /* Free rest */
     if (ske->prop) {
-      if (ske->prop->group)
-       silc_free(ske->prop->group);
+      silc_free(ske->prop->group);
       if (ske->prop->pkcs)
        silc_pkcs_free(ske->prop->pkcs);
       if (ske->prop->cipher)
@@ -94,8 +93,8 @@ void silc_ske_free(SilcSKE ske)
       silc_mp_uninit(ske->KEY);
       silc_free(ske->KEY);
     }
-    if (ske->hash)
-      silc_free(ske->hash);
+    silc_free(ske->hash);
+    silc_free(ske->callbacks);
     silc_free(ske);
   }
 }
@@ -662,6 +661,8 @@ SilcSKEStatus silc_ske_responder_start(SilcSKE ske, SilcRng rng,
   if (ske->callbacks->payload_receive)
     (*ske->callbacks->payload_receive)(ske, ske->callbacks->context);
 
+  silc_ske_payload_start_free(remote_payload);
+
   return status;
 
  err: