aboutsummaryrefslogtreecommitdiff
path: root/shell/hush_leaktool.sh
blob: ca35ec1443cfc77ac97d7848764e8aefd268f8c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh

# hush's stderr with leak debug enabled
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
    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