aboutsummaryrefslogtreecommitdiff
path: root/shell/hush_leaktool.sh
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2009-04-19 23:07:51 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2009-04-19 23:07:51 +0000
commitdcd78c4d0ff71a36d5c88953a62f5df6a4f31a9c (patch)
tree0fe10d42d2e0a35a4231aa81314691a972098819 /shell/hush_leaktool.sh
parent3798db58cfa0e939d0fc1822c9864355c1422cd0 (diff)
downloadbusybox-dcd78c4d0ff71a36d5c88953a62f5df6a4f31a9c.tar.gz
hush: fix "export not_yet_defined_var", fix parsing of "cmd | }"
corner case; improve hush_leaktool.sh; fix some false positives in testsuite function old new delta builtin_export 191 206 +15 parse_stream 2196 2200 +4
Diffstat (limited to 'shell/hush_leaktool.sh')
-rwxr-xr-xshell/hush_leaktool.sh16
1 files changed, 14 insertions, 2 deletions
diff --git a/shell/hush_leaktool.sh b/shell/hush_leaktool.sh
index f8e47aecd..ca35ec144 100755
--- a/shell/hush_leaktool.sh
+++ b/shell/hush_leaktool.sh
@@ -6,8 +6,20 @@ output=output
freelist=`grep 'free 0x' "$output" | cut -d' ' -f2 | sort | uniq | xargs`
grep -v free "$output" >"$output.leaked"
+
+i=8
+list=
for freed in $freelist; do
- echo Dropping $freed
- grep -v $freed <"$output.leaked" >"$output.temp"
+ list="$list -e $freed"
+ test $((--i)) != 0 && continue
+ echo Dropping $list
+ grep -F -v $list <"$output.leaked" >"$output.temp"
mv "$output.temp" "$output.leaked"
+ i=8
+ list=
done
+if test "$list"; then
+ echo Dropping $list
+ grep -F -v $list <"$output.leaked" >"$output.temp"
+ mv "$output.temp" "$output.leaked"
+fi