X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/blobdiff_plain/ec1a68c8a2703555659265994f30e8f9156af21c..c0601d1e22c5c3749ea94c1c4359f9223b732fe4:/src/dict-splay.c diff --git a/src/dict-splay.c b/src/dict-splay.c index b42d1e1..1e47350 100644 --- a/src/dict-splay.c +++ b/src/dict-splay.c @@ -1,11 +1,11 @@ /* dict-splay.c - Abstract dictionary type * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * - * srvx is free software; you can redistribute it and/or modify + * x3 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -78,6 +78,7 @@ dict_splay(struct dict_node *node, const char *key) int res; if (!node) return NULL; + if (!key) return NULL; N.l = N.r = NULL; l = r = &N; @@ -228,6 +229,7 @@ dict_remove2(dict_t dict, const char *key, int no_dispose) if (!dict->root) return 0; + if (!key) return 0; verify(dict); dict->root = dict_splay(dict->root, key); if (irccasecmp(key, dict->root->key)) @@ -304,20 +306,20 @@ dict_sanity_check_node(struct dict_node *node, struct dict_sanity_struct *dss) { verify(node); if (!node->key) { - snprintf(dss->error, sizeof(dss->error), "Node %p had null key", node); + snprintf(dss->error, sizeof(dss->error), "Node %p had null key", (void*)node); return 1; } if (node->l) { if (dict_sanity_check_node(node->l, dss)) return 1; if (irccasecmp(node->l->key, node->key) >= 0) { - snprintf(dss->error, sizeof(dss->error), "Node %p's left child's key '%s' >= its key '%s'", node, node->l->key, node->key); + snprintf(dss->error, sizeof(dss->error), "Node %p's left child's key '%s' >= its key '%s'", (void*)node, node->l->key, node->key); return 1; } } if (node->r) { if (dict_sanity_check_node(node->r, dss)) return 1; if (irccasecmp(node->key, node->r->key) >= 0) { - snprintf(dss->error, sizeof(dss->error), "Node %p's right child's key '%s' <= its key '%s'", node, node->r->key, node->key); + snprintf(dss->error, sizeof(dss->error), "Node %p's right child's key '%s' <= its key '%s'", (void*)node, node->r->key, node->key); return 1; } }