chiark / gitweb /
server/keymgmt.c: Don't leak `kdata' objects.
[tripe] / server / keymgmt.c
index 17325dce2d96e7ca78f029a4fd126d6344c865d9..8f0d1a2ad643700dcdda9bcac93e1a0f90eaa7d7 100644 (file)
@@ -166,7 +166,7 @@ static const kgops *kgtab[] = {
 /* --- @algs_get@ --- *
  *
  * Arguments:  @algswitch *a@ = where to put the algorithms
- *             @dstr *e@ = where to write errror tokens
+ *             @dstr *e@ = where to write error tokens
  *             @key_file *kf@ = key file
  *             @key *k@ = key to inspect
  *
@@ -374,6 +374,7 @@ int km_samealgsp(const kdata *kdx, const kdata *kdy)
   const algswitch *a = &kdx->algs, *aa = &kdy->algs;
 
   return (group_samep(kdx->g, kdy->g) &&
+         a->bulk == aa->bulk &&
          a->c == aa->c && a->b == aa->b &&
          a->mgf == aa->mgf && a->h == aa->h &&
          a->m == aa->m && a->tagsz == aa->tagsz);
@@ -882,6 +883,7 @@ void km_unref(kdata *kd)
   G_DESTROY(kd->g, kd->kpub);
   xfree(kd->tag);
   G_DESTROYGROUP(kd->g);
+  DESTROY(kd);
 }
 
 /*----- That's all, folks -------------------------------------------------*/