This file is indexed.

/var/lib/pcp/testsuite/828 is in pcp-testsuite 3.9.10.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
#!/bin/sh
# PCP QA Test No. 828
# Use valgrind to track down memory leaks associated with
# # pmDestroyContext().
# See http://oss.sgi.com/bugzilla/show_bug.cgi?id=1057
#
# Copyright (c) 2014 Ken McDonell.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
_check_valgrind

status=1	# failure is the default!
$sudo rm -rf $tmp.* $seq.full
trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15

_filter()
{
    # free pdubuf[size]: 0xe61000[28672] 0xe5c000[17408]
    sed \
	-e '/free pdubuf/s/0x[0-9a-f]*\[[0-9]*\]/addr[size]/g'
}

cat >$tmp.suppress <<End-of-File
{
   <pmid[], name[] realloc from qa main program>
   Memcheck:Leak
   fun:realloc
   fun:main
}
{
   <alloc list[] in pmNewContext>
   Memcheck:Leak
   fun:malloc
   fun:pmNewContext
   fun:main
}
{
   <realloc list[] in pmNewContext>
   Memcheck:Leak
   fun:realloc
   fun:pmNewContext
   fun:main
}
{
   <alloc list[] in pmNewContext via pmDupContext>
   Memcheck:Leak
   fun:malloc
   fun:pmNewContext
   fun:pmDupContext
   fun:main
}
{
   <realloc list[] in pmNewContext via pmDupContext>
   Memcheck:Leak
   fun:realloc
   fun:pmNewContext
   fun:pmDupContext
   fun:main
}
{
   <strdup TZ in pmNewZone>
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:pmNewZone
   fun:pmNewContextZone
   fun:main
}
{
   <zone[] alloc in pmNewZone>
   Memcheck:Leak
   fun:malloc
   fun:pmNewZone
   fun:pmNewContextZone
   fun:main
}
{
   <zone[] realloc in pmNewZone>
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:pmNewZone
   fun:pmNewContextZone
   fun:main
}
{
   <case 1 - buf hdr in __pmFindPDUBuf from pmGetArchiveEnd>
   Memcheck:Leak
   fun:malloc
   fun:__pmFindPDUBuf
   fun:__pmLogRead
   fun:__pmGetArchiveEnd
   fun:pmGetArchiveEnd
   fun:main
}
{
   <case 2 - buf hdr in __pmFindPDUBuf from pmGetArchiveEnd>
   Memcheck:Leak
   fun:malloc
   fun:__pmFindPDUBuf
   fun:__pmDecodeResult
   fun:__pmLogRead
   fun:__pmGetArchiveEnd
   fun:pmGetArchiveEnd
   fun:main
}
{
   <case 1 - PDU buf alloc - cache_read>
   Memcheck:Leak
   fun:malloc
   fun:__pmFindPDUBuf
   fun:__pmDecodeResult
   fun:__pmLogRead
   ...
   fun:__pmLogFetchInterp
   fun:__pmLogFetch
   fun:pmFetch
   fun:main
}
{
   <case 2 - PDU buf alloc>
   Memcheck:Leak
   fun:memalign
   fun:__pmFindPDUBuf
   fun:__pmLogRead
   fun:__pmGetArchiveEnd
   fun:pmGetArchiveEnd
   fun:main
}
{
   <case 3 - PDU buf alloc>
   Memcheck:Leak
   fun:memalign
   fun:__pmFindPDUBuf
   fun:__pmDecodeResult
   fun:__pmLogRead
   fun:__pmGetArchiveEnd
   fun:pmGetArchiveEnd
   fun:main
}
{
   <case 4 - PDU buf alloc - cache_read>
   Memcheck:Leak
   fun:memalign
   fun:__pmFindPDUBuf
   fun:__pmDecodeResult
   fun:__pmLogRead
   ...
   fun:__pmLogFetchInterp
   fun:__pmLogFetch
   fun:pmFetch
   fun:main
}
{
   <ipc[] table resize>
   Memcheck:Leak
   fun:malloc
   fun:realloc
   ...
   fun:__pmSetVersionIPC
   fun:__pmLogChkLabel
   fun:__pmLogChangeVol
   fun:__pmLogOpen
   fun:pmNewContext
   fun:main
}
End-of-File

# real QA test starts here

for arg in "" -d
do
    case "$arg"
    in
	'')
	    echo "=== pmNewContext ==="
	    ;;
	-d)
	    echo
	    echo "=== pmDupContext ==="
	    ;;
    esac

    reachable_opt='--show-leak-kinds=all'
    reachable_opt='--show-reachable=yes'

    valgrind \
	--leak-check=full --read-var-info=yes $reachable_opt \
	--suppressions=$tmp.suppress --log-file=$tmp.valgrind \
	--gen-suppressions=all \
	2>$tmp.valgrind.err >$tmp.valgrind.out \
	src/churnctx $arg -z -s 10 -a src/bug1057 kernel.all.load hinv.ncpu disk.dev.total

    echo "=== std out ==="
    cat $tmp.valgrind.out
    echo "=== std err ==="
    _filter < $tmp.valgrind.err
    echo "=== valgrind report ===" >>$seq.full
    cat $tmp.valgrind >>$seq.full
    echo "=== filtered valgrind report ==="
    _filter_valgrind <$tmp.valgrind
done

# success, all done
status=0

exit