]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
do run-time check of rbtree_insert()
authorAlan T. DeKok <aland@freeradius.org>
Thu, 2 Nov 2017 15:50:05 +0000 (11:50 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 2 Nov 2017 15:50:05 +0000 (11:50 -0400)
src/main/xlat_func.c

index 9c7f06a619fde9e853150cc951e41cefec459592..2f6aa035fdbcb3cc7c377a45c93ac65d6c73205a 100644 (file)
@@ -625,7 +625,6 @@ int xlat_register(void *mod_inst, char const *name,
 {
        xlat_t  *c;
        xlat_t  my_xlat;
-       rbnode_t *node;
 
        if (!name || !*name) {
                ERROR("%s: Invalid xlat name", __FUNCTION__);
@@ -725,7 +724,12 @@ int xlat_register(void *mod_inst, char const *name,
 
        DEBUG3("%s: %s", c->name, __FUNCTION__);
 
-       MEM(node = rbtree_insert_node(xlat_root, c));
+       if (!rbtree_insert(xlat_root, c)) {
+               ERROR("Failed inserting xlat registration for %s",
+                     c->name);
+               talloc_free(c);
+               return -1;
+       }
 
        return 0;
 }