]> granicus.if.org Git - postgresql/blob - src/tools/valgrind.supp
Prevent using strncpy with src == dest in TupleDescInitEntry.
[postgresql] / src / tools / valgrind.supp
1 # This is a suppression file for use with Valgrind tools.  File format
2 # documentation:
3 #       http://valgrind.org/docs/manual/mc-manual.html#mc-manual.suppfiles
4
5 # The libc symbol that implements a particular standard interface is
6 # implementation-dependent.  For example, strncpy() shows up as "__GI_strncpy"
7 # on some platforms.  Use wildcards to avoid mentioning such specific names.
8
9
10 # We have occasion to write raw binary structures to disk or to the network.
11 # These may contain uninitialized padding bytes.  Since recipients also ignore
12 # those bytes as padding, this is harmless.
13
14 {
15         padding_pgstat_send
16         Memcheck:Param
17         socketcall.send(msg)
18
19         fun:*send*
20         fun:pgstat_send
21 }
22
23 {
24         padding_pgstat_sendto
25         Memcheck:Param
26         socketcall.sendto(msg)
27
28         fun:*send*
29         fun:pgstat_send
30 }
31
32 {
33         padding_pgstat_write
34         Memcheck:Param
35         write(buf)
36
37         ...
38         fun:pgstat_write_statsfiles
39 }
40
41 {
42         padding_XLogRecData_CRC
43         Memcheck:Value8
44
45         fun:XLogInsert
46 }
47
48 {
49         padding_XLogRecData_write
50         Memcheck:Param
51         write(buf)
52
53     ...
54         fun:XLogWrite
55 }
56
57 {
58         padding_relcache
59         Memcheck:Param
60         write(buf)
61
62         ...
63         fun:write_relcache_init_file
64 }
65
66
67 # gcc on ppc64 can generate a four-byte read to fetch the final "char" fields
68 # of a FormData_pg_cast.  This is valid compiler behavior, because a proper
69 # FormData_pg_cast has trailing padding.  Tuples we treat as structures omit
70 # that padding, so Valgrind reports an invalid read.  Practical trouble would
71 # entail the missing pad bytes falling in a different memory page.  So long as
72 # the structure is aligned, that will not happen.
73 {
74         overread_tuplestruct_pg_cast
75         Memcheck:Addr4
76
77         fun:IsBinaryCoercible
78 }