diff --git a/lib/libforms/bindings.c b/lib/libforms/bindings.c index 947b5ee47bdd..4ebdd8d99b73 100644 --- a/lib/libforms/bindings.c +++ b/lib/libforms/bindings.c @@ -45,6 +45,12 @@ bind_tuple(hash_table *htable, char *name, { struct Tuple *tuple; + /* First check to see if we've been bound in already */ + if (hash_search(htable, tuple->name, NULL, NULL)) { + warn("Duplicate tuple name, %s, skipping", name); + return (ST_ERROR); + } + tuple = malloc(sizeof (struct Tuple)); if (!tuple) { warn("Couldn't allocate memory for new tuple"); @@ -55,10 +61,8 @@ bind_tuple(hash_table *htable, char *name, tuple->type = type; tuple->addr = fn; - if (hash_search(htable, tuple->name, tuple, NULL)) { - warn("Duplicate tuple name, %s, skipping", name); - return (ST_ERROR); - } + /* Insert it */ + hash_search(htable, tuple->name, tuple, NULL); #ifdef DEBUG debug_dump_table(htable);