/*----- Useful macros -----------------------------------------------------*/
#define KEY_WRITE(f) do { \
- if (!(f)->f & KF_WRITE) \
+ if (!((f)->f & KF_WRITE)) \
return (KERR_READONLY); \
} while (0)
char *p;
uint32 id;
key_ref *kr = sym_find(&f->bytag, tag, -1, 0, 0);
+ key *k;
if (kr && !(KEY_EXPIRED(t, kr->k->exp) && KEY_EXPIRED(t, kr->k->del)))
return (kr->k);
id = strtoul(tag, &p, 16);
- if (!*p)
- return (key_byid(f, id));
+ if (!*p && (k = key_byid(f, id)) != 0) return (k);
return (key_bytype(f, tag));
}