summaryrefslogtreecommitdiff
path: root/common/env_common.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-12-08 06:26:04 -0500
committerWolfgang Denk <wd@denx.de>2010-12-17 21:07:14 +0100
commit2eb1573f01710832bbe60a4ece89cb301727612a (patch)
treeec940c57d350c16c567a8c2a865860e4a5ff4bb2 /common/env_common.c
parentc22a711d249b2b9ee39fe11bcee15ee4dbe3bf09 (diff)
downloadu-boot-imx-2eb1573f01710832bbe60a4ece89cb301727612a.zip
u-boot-imx-2eb1573f01710832bbe60a4ece89cb301727612a.tar.gz
u-boot-imx-2eb1573f01710832bbe60a4ece89cb301727612a.tar.bz2
hashtable: drop all non-reentrant versions
The non-reentrant versions of the hashtable functions operate on a single shared hashtable. So if two different people try using these funcs for two different purposes, they'll cause problems for the other. Avoid this by converting all existing hashtable consumers over to the reentrant versions and then punting the non-reentrant ones. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'common/env_common.c')
-rw-r--r--common/env_common.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/common/env_common.c b/common/env_common.c
index a276efc..ae710e5 100644
--- a/common/env_common.c
+++ b/common/env_common.c
@@ -129,6 +129,8 @@ uchar default_environment[] = {
"\0"
};
+struct hsearch_data env_htab;
+
static uchar env_get_char_init (int index)
{
uchar c;
@@ -187,7 +189,7 @@ void set_default_env(const char *s)
puts("Using default environment\n\n");
}
- if (himport((char *)default_environment,
+ if (himport_r(&env_htab, (char *)default_environment,
sizeof(default_environment), '\0', 0) == 0) {
error("Environment import failed: errno = %d\n", errno);
}
@@ -213,7 +215,7 @@ int env_import(const char *buf, int check)
}
}
- if (himport((char *)ep->data, ENV_SIZE, '\0', 0)) {
+ if (himport_r(&env_htab, (char *)ep->data, ENV_SIZE, '\0', 0)) {
gd->flags |= GD_FLG_ENV_READY;
return 1;
}