summaryrefslogtreecommitdiff
path: root/test/env/Makefile
diff options
context:
space:
mode:
authorRoman Kapl <rka@sysgo.com>2019-01-30 11:39:54 +0100
committerTom Rini <trini@konsulko.com>2019-02-09 07:50:54 -0500
commit9dfdbd9f0c69c6c8005bc41ac602c27023492ee8 (patch)
tree9102ee06b23295b7794aae04645ed4902531ea7e /test/env/Makefile
parent4d9dbb1fbb7c47ebb4390d6aaa35aa4254db06d4 (diff)
downloadu-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/Makefile1
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