diff options
author | Roman Kapl <rka@sysgo.com> | 2019-01-30 11:39:54 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-02-09 07:50:54 -0500 |
commit | 9dfdbd9f0c69c6c8005bc41ac602c27023492ee8 (patch) | |
tree | 9102ee06b23295b7794aae04645ed4902531ea7e /test/env/Makefile | |
parent | 4d9dbb1fbb7c47ebb4390d6aaa35aa4254db06d4 (diff) | |
download | u-boot-9dfdbd9f0c69c6c8005bc41ac602c27023492ee8.tar.gz u-boot-9dfdbd9f0c69c6c8005bc41ac602c27023492ee8.tar.bz2 u-boot-9dfdbd9f0c69c6c8005bc41ac602c27023492ee8.zip |
hashtable: fix environment variable corruption
Only first previously deleted entry was recognized, leading hsearch_r
to think that there was no previously deleted entry. It then conluded
that a free entry was found, even if there were no free entries and it
overwrote a random entry.
This patch makes sure all deleted or free entries are always found and
also introduces constants for the 0 and -1 numbers. Unit tests to excersise a
simple hash table usage and catch the corruption were added.
To trash your environment, simply run this loop:
setenv i 0
while true; do
setenv v_$i $i
setenv v_$i
setexpr i $i + 1
done
Signed-off-by: Roman Kapl <rka@sysgo.com>
Diffstat (limited to 'test/env/Makefile')
-rw-r--r-- | test/env/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/test/env/Makefile b/test/env/Makefile index d71a11b6e2..5c8eae31b0 100644 --- a/test/env/Makefile +++ b/test/env/Makefile @@ -4,3 +4,4 @@ obj-y += cmd_ut_env.o obj-y += attr.o +obj-y += hashtable.o |