X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/d11a0bf77a5230387d222ec727865a898767ff3e..981bf1273304e1bc6604ea22b6ab4bd9ae07974b:/key-attr.c diff --git a/key-attr.c b/key-attr.c index 3737a5d..75b2f1e 100644 --- a/key-attr.c +++ b/key-attr.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: key-attr.c,v 1.1 1999/12/22 15:47:48 mdw Exp $ + * $Id: key-attr.c,v 1.4 2004/04/08 01:02:49 mdw Exp $ * * Key attribute manipulation * @@ -30,6 +30,15 @@ /*----- Revision history --------------------------------------------------* * * $Log: key-attr.c,v $ + * Revision 1.4 2004/04/08 01:02:49 mdw + * key-binary.c + * + * Revision 1.3 2001/06/22 19:39:43 mdw + * Allow tagging if the tag is owned by a deleted key. + * + * Revision 1.2 2000/02/12 18:21:02 mdw + * Overhaul of key management (again). + * * Revision 1.1 1999/12/22 15:47:48 mdw * Major key-management revision. * @@ -43,7 +52,7 @@ #include #include -#include +#include #include #include "key.h" @@ -61,7 +70,7 @@ int key_chkident(const char *p) { - if (!p || !*p) + if (!p || !*p || strlen(p) > 255) return (-1); while (*p) { if (*p == ':' || *p == '.' || isspace((unsigned char)*p)) @@ -170,6 +179,8 @@ int key_putattr(key_file *f, key *k, const char *n, const char *v) if (!(f->f & KF_WRITE)) return (KERR_READONLY); + if (strlen(n) > 255) + return (KERR_BADATTR); if (v) { a = sym_find(&k->a, n, -1, sizeof(*a), &found); @@ -246,7 +257,7 @@ int key_settag(key_file *f, key *k, const char *tag) if (tag) { kr = sym_find(&f->bytag, tag, -1, sizeof(*kr), &found); - if (found) + if (found && !KEY_EXPIRED(time(0), kr->k->del)) return (KERR_DUPTAG); kr->k = k; }