base/dispatch.c, etc.: Replace inline assembler for the `rdrand' fix.
[catacomb] / key / key-data.c
index 3a0b735..cd5c8d7 100644 (file)
@@ -428,8 +428,8 @@ static int structmatchp(key_data *k, const key_filter *kf)
 {
   key_subkeyiter i;
 
-  if (!KEY_MATCH(k, kf)) return (0);
-  else if ((k->e & KF_ENCMASK) == KENC_STRUCT) return (1);
+  if ((k->e & KF_ENCMASK) != KENC_STRUCT)
+    return (KEY_MATCH(k, kf));
   else {
     for (key_mksubkeyiter(&i, k); key_nextsubkey(&i, 0, &k); )
       if (!structmatchp(k, kf)) return (0);