summaryrefslogtreecommitdiff
path: root/lib/hashtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hashtable.c')
-rw-r--r--lib/hashtable.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/hashtable.c b/lib/hashtable.c
index e9226665f3..07ebfb218f 100644
--- a/lib/hashtable.c
+++ b/lib/hashtable.c
@@ -55,6 +55,7 @@
#endif
#include <env_callback.h>
+#include <env_flags.h>
#include <search.h>
/*
@@ -412,6 +413,8 @@ int hsearch_r(ENTRY item, ACTION action, ENTRY ** retval,
/* This is a new entry, so look up a possible callback */
env_callback_init(&htab->table[idx].entry);
+ /* Also look for flags */
+ env_flags_init(&htab->table[idx].entry);
/* check for permission */
if (htab->change_ok != NULL && htab->change_ok(
@@ -465,6 +468,7 @@ static void _hdelete(const char *key, struct hsearch_data *htab, ENTRY *ep,
free((void *)ep->key);
free(ep->data);
ep->callback = NULL;
+ ep->flags = 0;
htab->table[idx].used = -1;
--htab->filled;