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-w32-dcd78c4d0ff71a36d5c88953a62f5df6a4f31a9c.tar.gz
busybox-w32-dcd78c4d0ff71a36d5c88953a62f5df6a4f31a9c.tar.bz2
busybox-w32-dcd78c4d0ff71a36d5c88953a62f5df6a4f31a9c.zip
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
6freelist=`grep 'free 0x' "$output" | cut -d' ' -f2 | sort | uniq | xargs` 6freelist=`grep 'free 0x' "$output" | cut -d' ' -f2 | sort | uniq | xargs`
7 7
8grep -v free "$output" >"$output.leaked" 8grep -v free "$output" >"$output.leaked"
9
10i=8
11list=
9for freed in $freelist; do 12for freed in $freelist; do
10 echo Dropping $freed 13 list="$list -e $freed"
11 grep -v $freed <"$output.leaked" >"$output.temp" 14 test $((--i)) != 0 && continue
15 echo Dropping $list
16 grep -F -v $list <"$output.leaked" >"$output.temp"
12 mv "$output.temp" "$output.leaked" 17 mv "$output.temp" "$output.leaked"
18 i=8
19 list=
13done 20done
21if test "$list"; then
22 echo Dropping $list
23 grep -F -v $list <"$output.leaked" >"$output.temp"
24 mv "$output.temp" "$output.leaked"
25fi