X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/5dd6771b28c257af405d7248639ed0e3bcdce38b..9322ba2854211794c27fae9468768b80b767c211:/sbr/context_del.c diff --git a/sbr/context_del.c b/sbr/context_del.c index 474e51c8..37cbce00 100644 --- a/sbr/context_del.c +++ b/sbr/context_del.c @@ -8,6 +8,7 @@ */ #include +#include /* * Delete a key/value pair from the context/profile list. @@ -17,10 +18,10 @@ int context_del (char *key) { - register struct node *np, *pp; + struct node *np, *pp; for (np = m_defs, pp = NULL; np; pp = np, np = np->n_next) { - if (!mh_strcasecmp (np->n_name, key)) { + if (!strcasecmp (np->n_name ? np->n_name : "", key ? key : "")) { if (!np->n_context) admonish (NULL, "bug: context_del(key=\"%s\")", np->n_name); if (pp) @@ -28,9 +29,8 @@ context_del (char *key) else m_defs = np->n_next; free (np->n_name); - if (np->n_field) - free (np->n_field); - free ((char *) np); + mh_xfree(np->n_field); + free(np); ctxflags |= CTXMOD; return 0; }