chiark / gitweb /
server/bulkcrypto.c: Fix segfault in `aead' algorithm setup.
[tripe] / server / bulkcrypto.c
index 6b175ddd3d7c5926c06246d3a1640f302b1bb203..9af4bb8ce063ac0fb4d2b77f6ab257638a4e68ef 100644 (file)
@@ -889,11 +889,10 @@ static bulkalgs *aead_getalgs(const algswitch *asw, dstr *e,
   p = key_getattr(kf, k, "tagsz");
   if (!p) {
     p = key_getattr(kf, k, "mac");
-    if (strncmp(p, "aead", 4) != 0 || (p[4] && p[4] != '/')) {
-      a_format(e, "unknown-mac", "%s", p, A_END);
-      goto fail;
-    }
-    if (p[4] == '/') p += 5;
+    if (!p) ;
+    else if (strncmp(p, "aead", 4) != 0 || (p[4] && p[4] != '/'))
+      { a_format(e, "unknown-mac", "%s", p, A_END); goto fail; }
+    else if (p[4] == '/') p += 5;
     else p = 0;
   }
   if (!p)