X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcske%2Fsilcske.c;h=cf97428eeed0d291334d2db4c2c778d619035939;hb=dab511835c26a5fabd5ae6e793d9ef584b670c06;hp=a726174339bde711d2108432905668a7fbc5fb37;hpb=a71ca13285f67f081df53cf40a0170a723ebdec3;p=silc.git diff --git a/lib/silcske/silcske.c b/lib/silcske/silcske.c index a7261743..cf97428e 100644 --- a/lib/silcske/silcske.c +++ b/lib/silcske/silcske.c @@ -1035,6 +1035,7 @@ SilcSKE silc_ske_alloc(SilcRng rng, SilcSchedule schedule, ske->public_key = public_key; ske->private_key = private_key; ske->retry_timer = SILC_SKE_RETRY_MIN; + ske->refcnt = 1; return ske; } @@ -1064,6 +1065,10 @@ void silc_ske_free(SilcSKE ske) return; } + ske->refcnt--; + if (ske->refcnt > 0) + return; + /* Free start payload */ if (ske->start_payload) silc_ske_payload_start_free(ske->start_payload);