diff options
author | Mike Frysinger <vapier@gentoo.org> | 2010-12-08 06:26:04 -0500 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-12-17 21:07:14 +0100 |
commit | 2eb1573f01710832bbe60a4ece89cb301727612a (patch) | |
tree | ec940c57d350c16c567a8c2a865860e4a5ff4bb2 /common/env_common.c | |
parent | c22a711d249b2b9ee39fe11bcee15ee4dbe3bf09 (diff) | |
download | u-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.c | 6 |
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; } |