@@ -12,83 +12,85 @@ type AllowPair struct {
12
12
Fun string
13
13
}
14
14
15
- var allowedErrors = []AllowPair {
16
- // pkg/archive/tar
17
- {Err : "io.EOF" , Fun : "(*archive/tar.Reader).Next" },
18
- {Err : "io.EOF" , Fun : "(*archive/tar.Reader).Read" },
19
- // pkg/bufio
20
- {Err : "io.EOF" , Fun : "(*bufio.Reader).Discard" },
21
- {Err : "io.EOF" , Fun : "(*bufio.Reader).Peek" },
22
- {Err : "io.EOF" , Fun : "(*bufio.Reader).Read" },
23
- {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadByte" },
24
- {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadBytes" },
25
- {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadLine" },
26
- {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadSlice" },
27
- {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadString" },
28
- {Err : "io.EOF" , Fun : "(*bufio.Scanner).Scan" },
29
- // pkg/bytes
30
- {Err : "io.EOF" , Fun : "(*bytes.Buffer).Read" },
31
- {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadByte" },
32
- {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadBytes" },
33
- {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadRune" },
34
- {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadString" },
35
- {Err : "io.EOF" , Fun : "(*bytes.Reader).Read" },
36
- {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadAt" },
37
- {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadByte" },
38
- {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadRune" },
39
- {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadString" },
40
- // pkg/database/sql
41
- {Err : "database/sql.ErrNoRows" , Fun : "(*database/sql.Row).Scan" },
42
- // pkg/debug/elf
43
- {Err : "io.EOF" , Fun : "debug/elf.Open" },
44
- {Err : "io.EOF" , Fun : "debug/elf.NewFile" },
45
- // pkg/io
46
- {Err : "io.EOF" , Fun : "(io.ReadCloser).Read" },
47
- {Err : "io.EOF" , Fun : "(io.Reader).Read" },
48
- {Err : "io.EOF" , Fun : "(io.ReaderAt).ReadAt" },
49
- {Err : "io.EOF" , Fun : "(*io.LimitedReader).Read" },
50
- {Err : "io.EOF" , Fun : "(*io.SectionReader).Read" },
51
- {Err : "io.EOF" , Fun : "(*io.SectionReader).ReadAt" },
52
- {Err : "io.ErrClosedPipe" , Fun : "(*io.PipeWriter).Write" },
53
- {Err : "io.ErrShortBuffer" , Fun : "io.ReadAtLeast" },
54
- {Err : "io.ErrUnexpectedEOF" , Fun : "io.ReadAtLeast" },
55
- {Err : "io.EOF" , Fun : "io.ReadFull" },
56
- {Err : "io.ErrUnexpectedEOF" , Fun : "io.ReadFull" },
57
- // pkg/net/http
58
- {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).ListenAndServe" },
59
- {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).ListenAndServeTLS" },
60
- {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).Serve" },
61
- {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).ServeTLS" },
62
- {Err : "net/http.ErrServerClosed" , Fun : "net/http.ListenAndServe" },
63
- {Err : "net/http.ErrServerClosed" , Fun : "net/http.ListenAndServeTLS" },
64
- {Err : "net/http.ErrServerClosed" , Fun : "net/http.Serve" },
65
- {Err : "net/http.ErrServerClosed" , Fun : "net/http.ServeTLS" },
66
- // pkg/os
67
- {Err : "io.EOF" , Fun : "(*os.File).Read" },
68
- {Err : "io.EOF" , Fun : "(*os.File).ReadAt" },
69
- {Err : "io.EOF" , Fun : "(*os.File).ReadDir" },
70
- {Err : "io.EOF" , Fun : "(*os.File).Readdir" },
71
- {Err : "io.EOF" , Fun : "(*os.File).Readdirnames" },
72
- // pkg/strings
73
- {Err : "io.EOF" , Fun : "(*strings.Reader).Read" },
74
- {Err : "io.EOF" , Fun : "(*strings.Reader).ReadAt" },
75
- {Err : "io.EOF" , Fun : "(*strings.Reader).ReadByte" },
76
- {Err : "io.EOF" , Fun : "(*strings.Reader).ReadRune" },
77
- // pkg/context
78
- {Err : "context.DeadlineExceeded" , Fun : "(context.Context).Err" },
79
- {Err : "context.Canceled" , Fun : "(context.Context).Err" },
80
- // pkg/encoding/json
81
- {Err : "io.EOF" , Fun : "(*encoding/json.Decoder).Decode" },
82
- // pkg/encoding/csv
83
- {Err : "io.EOF" , Fun : "(*encoding/csv.Reader).Read" },
84
- // pkg/mime/multipart
85
- {Err : "io.EOF" , Fun : "(*mime/multipart.Reader).NextPart" },
86
- {Err : "io.EOF" , Fun : "(*mime/multipart.Reader).NextRawPart" },
87
- {Err : "mime/multipart.ErrMessageTooLarge" , Fun : "(*mime/multipart.Reader).ReadForm" },
88
- }
89
-
90
15
var allowedErrorsMap = make (map [string ]map [string ]struct {})
91
16
17
+ func setDefaultAllowedErrors () {
18
+ allowedMapAppend ([]AllowPair {
19
+ // pkg/archive/tar
20
+ {Err : "io.EOF" , Fun : "(*archive/tar.Reader).Next" },
21
+ {Err : "io.EOF" , Fun : "(*archive/tar.Reader).Read" },
22
+ // pkg/bufio
23
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).Discard" },
24
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).Peek" },
25
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).Read" },
26
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadByte" },
27
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadBytes" },
28
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadLine" },
29
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadSlice" },
30
+ {Err : "io.EOF" , Fun : "(*bufio.Reader).ReadString" },
31
+ {Err : "io.EOF" , Fun : "(*bufio.Scanner).Scan" },
32
+ // pkg/bytes
33
+ {Err : "io.EOF" , Fun : "(*bytes.Buffer).Read" },
34
+ {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadByte" },
35
+ {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadBytes" },
36
+ {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadRune" },
37
+ {Err : "io.EOF" , Fun : "(*bytes.Buffer).ReadString" },
38
+ {Err : "io.EOF" , Fun : "(*bytes.Reader).Read" },
39
+ {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadAt" },
40
+ {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadByte" },
41
+ {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadRune" },
42
+ {Err : "io.EOF" , Fun : "(*bytes.Reader).ReadString" },
43
+ // pkg/database/sql
44
+ {Err : "database/sql.ErrNoRows" , Fun : "(*database/sql.Row).Scan" },
45
+ // pkg/debug/elf
46
+ {Err : "io.EOF" , Fun : "debug/elf.Open" },
47
+ {Err : "io.EOF" , Fun : "debug/elf.NewFile" },
48
+ // pkg/io
49
+ {Err : "io.EOF" , Fun : "(io.ReadCloser).Read" },
50
+ {Err : "io.EOF" , Fun : "(io.Reader).Read" },
51
+ {Err : "io.EOF" , Fun : "(io.ReaderAt).ReadAt" },
52
+ {Err : "io.EOF" , Fun : "(*io.LimitedReader).Read" },
53
+ {Err : "io.EOF" , Fun : "(*io.SectionReader).Read" },
54
+ {Err : "io.EOF" , Fun : "(*io.SectionReader).ReadAt" },
55
+ {Err : "io.ErrClosedPipe" , Fun : "(*io.PipeWriter).Write" },
56
+ {Err : "io.ErrShortBuffer" , Fun : "io.ReadAtLeast" },
57
+ {Err : "io.ErrUnexpectedEOF" , Fun : "io.ReadAtLeast" },
58
+ {Err : "io.EOF" , Fun : "io.ReadFull" },
59
+ {Err : "io.ErrUnexpectedEOF" , Fun : "io.ReadFull" },
60
+ // pkg/net/http
61
+ {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).ListenAndServe" },
62
+ {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).ListenAndServeTLS" },
63
+ {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).Serve" },
64
+ {Err : "net/http.ErrServerClosed" , Fun : "(*net/http.Server).ServeTLS" },
65
+ {Err : "net/http.ErrServerClosed" , Fun : "net/http.ListenAndServe" },
66
+ {Err : "net/http.ErrServerClosed" , Fun : "net/http.ListenAndServeTLS" },
67
+ {Err : "net/http.ErrServerClosed" , Fun : "net/http.Serve" },
68
+ {Err : "net/http.ErrServerClosed" , Fun : "net/http.ServeTLS" },
69
+ // pkg/os
70
+ {Err : "io.EOF" , Fun : "(*os.File).Read" },
71
+ {Err : "io.EOF" , Fun : "(*os.File).ReadAt" },
72
+ {Err : "io.EOF" , Fun : "(*os.File).ReadDir" },
73
+ {Err : "io.EOF" , Fun : "(*os.File).Readdir" },
74
+ {Err : "io.EOF" , Fun : "(*os.File).Readdirnames" },
75
+ // pkg/strings
76
+ {Err : "io.EOF" , Fun : "(*strings.Reader).Read" },
77
+ {Err : "io.EOF" , Fun : "(*strings.Reader).ReadAt" },
78
+ {Err : "io.EOF" , Fun : "(*strings.Reader).ReadByte" },
79
+ {Err : "io.EOF" , Fun : "(*strings.Reader).ReadRune" },
80
+ // pkg/context
81
+ {Err : "context.DeadlineExceeded" , Fun : "(context.Context).Err" },
82
+ {Err : "context.Canceled" , Fun : "(context.Context).Err" },
83
+ // pkg/encoding/json
84
+ {Err : "io.EOF" , Fun : "(*encoding/json.Decoder).Decode" },
85
+ // pkg/encoding/csv
86
+ {Err : "io.EOF" , Fun : "(*encoding/csv.Reader).Read" },
87
+ // pkg/mime/multipart
88
+ {Err : "io.EOF" , Fun : "(*mime/multipart.Reader).NextPart" },
89
+ {Err : "io.EOF" , Fun : "(*mime/multipart.Reader).NextRawPart" },
90
+ {Err : "mime/multipart.ErrMessageTooLarge" , Fun : "(*mime/multipart.Reader).ReadForm" },
91
+ })
92
+ }
93
+
92
94
func allowedMapAppend (ap []AllowPair ) {
93
95
for _ , pair := range ap {
94
96
if _ , ok := allowedErrorsMap [pair .Err ]; ! ok {
0 commit comments