1
2
3
4
5
6
7
8 package godebugs
9
10
11 type Info struct {
12 Name string
13 Package string
14 Changed int
15 Old string
16 Opaque bool
17 Immutable bool
18 }
19
20
21
22
23
24
25
26
27
28 var All = []Info{
29 {Name: "allowmultiplevcs", Package: "cmd/go"},
30 {Name: "containermaxprocs", Package: "runtime", Changed: 25, Old: "0"},
31 {Name: "cryptocustomrand", Package: "crypto", Changed: 26, Old: "1"},
32 {Name: "dataindependenttiming", Package: "crypto/subtle", Opaque: true},
33 {Name: "decoratemappings", Package: "runtime", Opaque: true, Changed: 25, Old: "0"},
34 {Name: "embedfollowsymlinks", Package: "cmd/go"},
35 {Name: "execerrdot", Package: "os/exec"},
36 {Name: "fips140", Package: "crypto/fips140", Opaque: true, Immutable: true},
37 {Name: "fips140ems", Package: "crypto/tls"},
38 {Name: "gocachehash", Package: "cmd/go"},
39 {Name: "gocachetest", Package: "cmd/go"},
40 {Name: "gocacheverify", Package: "cmd/go"},
41 {Name: "gotestjsonbuildtext", Package: "cmd/go", Changed: 24, Old: "1"},
42 {Name: "htmlmetacontenturlescape", Package: "html/template"},
43 {Name: "http2client", Package: "net/http"},
44 {Name: "http2debug", Package: "net/http", Opaque: true},
45 {Name: "http2server", Package: "net/http"},
46 {Name: "httpcookiemaxnum", Package: "net/http", Changed: 24, Old: "0"},
47 {Name: "httplaxcontentlength", Package: "net/http", Changed: 22, Old: "1"},
48 {Name: "httpmuxgo121", Package: "net/http", Changed: 22, Old: "1"},
49 {Name: "httpservecontentkeepheaders", Package: "net/http", Changed: 23, Old: "1"},
50 {Name: "installgoroot", Package: "go/build"},
51 {Name: "jstmpllitinterp", Package: "html/template", Opaque: true},
52
53 {Name: "multipartmaxheaders", Package: "mime/multipart"},
54 {Name: "multipartmaxparts", Package: "mime/multipart"},
55 {Name: "multipathtcp", Package: "net", Changed: 24, Old: "0"},
56 {Name: "netdns", Package: "net", Opaque: true},
57 {Name: "netedns0", Package: "net", Changed: 19, Old: "0"},
58 {Name: "netmarshal", Package: "net", Changed: 30, Old: "0"},
59 {Name: "panicnil", Package: "runtime", Changed: 21, Old: "1"},
60 {Name: "randautoseed", Package: "math/rand"},
61 {Name: "randseednop", Package: "math/rand", Changed: 24, Old: "0"},
62 {Name: "rsa1024min", Package: "crypto/rsa", Changed: 24, Old: "0"},
63 {Name: "tarinsecurepath", Package: "archive/tar"},
64 {Name: "tlsmaxrsasize", Package: "crypto/tls"},
65 {Name: "tlsmlkem", Package: "crypto/tls", Changed: 24, Old: "0", Opaque: true},
66 {Name: "tlssecpmlkem", Package: "crypto/tls", Changed: 26, Old: "0", Opaque: true},
67 {Name: "tlssha1", Package: "crypto/tls", Changed: 25, Old: "1"},
68
69
70
71 {Name: "tracebacklabels", Package: "runtime", Changed: 27, Old: "0", Opaque: true},
72 {Name: "updatemaxprocs", Package: "runtime", Changed: 25, Old: "0"},
73 {Name: "urlmaxqueryparams", Package: "net/url", Changed: 24, Old: "0"},
74 {Name: "urlstrictcolons", Package: "net/url", Changed: 26, Old: "0"},
75 {Name: "winreadlinkvolume", Package: "os", Changed: 23, Old: "0"},
76 {Name: "winsymlink", Package: "os", Changed: 23, Old: "0"},
77 {Name: "x509negativeserial", Package: "crypto/x509", Changed: 23, Old: "1"},
78 {Name: "x509rsacrt", Package: "crypto/x509", Changed: 24, Old: "0"},
79 {Name: "x509sha256skid", Package: "crypto/x509", Changed: 25, Old: "0"},
80 {Name: "x509sslcertoverrideplatform", Package: "crypto/x509", Changed: 27, Old: "0"},
81 {Name: "x509usefallbackroots", Package: "crypto/x509"},
82 {Name: "x509usepolicies", Package: "crypto/x509", Changed: 24, Old: "0"},
83 {Name: "zipinsecurepath", Package: "archive/zip"},
84 }
85
86
87
88
89
90
91
92 type RemovedInfo struct {
93 Name string
94 Removed int
95 Old func(string) bool
96 }
97
98
99
100
101
102 var Removed = []RemovedInfo{
103 {Name: "x509sha1", Removed: 24, Old: one},
104 {Name: "tlskyber", Removed: 24, Old: zero},
105 {Name: "gotypesalias", Removed: 27, Old: zero},
106 {Name: "tlsunsafeekm", Removed: 27, Old: one},
107 {Name: "tlsrsakex", Removed: 27, Old: one},
108 {Name: "tls3des", Removed: 27, Old: one},
109 {Name: "tls10server", Removed: 27, Old: one},
110 {Name: "x509keypairleaf", Removed: 27, Old: zero},
111 {Name: "asynctimerchan", Removed: 27, Old: func(s string) bool { return s == "1" || s == "2" }},
112 }
113
114 func zero(s string) bool { return s == "0" }
115 func one(s string) bool { return s == "1" }
116
117
118 func Lookup(name string) *Info {
119
120 lo := 0
121 hi := len(All)
122 for lo < hi {
123 m := int(uint(lo+hi) >> 1)
124 mid := All[m].Name
125 if name == mid {
126 return &All[m]
127 }
128 if name < mid {
129 hi = m
130 } else {
131 lo = m + 1
132 }
133 }
134 return nil
135 }
136
View as plain text