@@ -2028,6 +2028,50 @@ func TestCVE202133195(t *testing.T) {
2028
2028
MX : dnsmessage .MustNewName ("good.golang.org." ),
2029
2029
},
2030
2030
},
2031
+ dnsmessage.Resource {
2032
+ Header : dnsmessage.ResourceHeader {
2033
+ Name : dnsmessage .MustNewName ("127.0.0.1." ),
2034
+ Type : dnsmessage .TypeMX ,
2035
+ Class : dnsmessage .ClassINET ,
2036
+ Length : 4 ,
2037
+ },
2038
+ Body : & dnsmessage.MXResource {
2039
+ MX : dnsmessage .MustNewName ("127.0.0.1." ),
2040
+ },
2041
+ },
2042
+ dnsmessage.Resource {
2043
+ Header : dnsmessage.ResourceHeader {
2044
+ Name : dnsmessage .MustNewName ("1.2.3.4.5." ),
2045
+ Type : dnsmessage .TypeMX ,
2046
+ Class : dnsmessage .ClassINET ,
2047
+ Length : 4 ,
2048
+ },
2049
+ Body : & dnsmessage.MXResource {
2050
+ MX : dnsmessage .MustNewName ("1.2.3.4.5." ),
2051
+ },
2052
+ },
2053
+ dnsmessage.Resource {
2054
+ Header : dnsmessage.ResourceHeader {
2055
+ Name : dnsmessage .MustNewName ("2001:4860:0:2001::68." ),
2056
+ Type : dnsmessage .TypeMX ,
2057
+ Class : dnsmessage .ClassINET ,
2058
+ Length : 4 ,
2059
+ },
2060
+ Body : & dnsmessage.MXResource {
2061
+ MX : dnsmessage .MustNewName ("2001:4860:0:2001::68." ),
2062
+ },
2063
+ },
2064
+ dnsmessage.Resource {
2065
+ Header : dnsmessage.ResourceHeader {
2066
+ Name : dnsmessage .MustNewName ("2001:4860:0:2001::68%zone." ),
2067
+ Type : dnsmessage .TypeMX ,
2068
+ Class : dnsmessage .ClassINET ,
2069
+ Length : 4 ,
2070
+ },
2071
+ Body : & dnsmessage.MXResource {
2072
+ MX : dnsmessage .MustNewName ("2001:4860:0:2001::68%zone." ),
2073
+ },
2074
+ },
2031
2075
)
2032
2076
case dnsmessage .TypeNS :
2033
2077
r .Answers = append (r .Answers ,
@@ -2152,25 +2196,37 @@ func TestCVE202133195(t *testing.T) {
2152
2196
{
2153
2197
name : "MX" ,
2154
2198
f : func (t * testing.T ) {
2155
- expected := []* MX {
2156
- {
2157
- Host : "good.golang.org ." ,
2158
- } ,
2199
+ expected := []string {
2200
+ "127.0.0.1." ,
2201
+ "2001:4860:0:2001::68 ." ,
2202
+ "good.golang.org." ,
2159
2203
}
2160
2204
expectedErr := & DNSError {Err : errMalformedDNSRecordsDetail , Name : "golang.org" }
2161
2205
records , err := r .LookupMX (context .Background (), "golang.org" )
2162
2206
if err .Error () != expectedErr .Error () {
2163
2207
t .Fatalf ("unexpected error: %s" , err )
2164
2208
}
2165
- if ! reflect .DeepEqual (records , expected ) {
2166
- t .Error ("Unexpected record set" )
2209
+
2210
+ hosts := func (records []* MX ) []string {
2211
+ var got []string
2212
+ for _ , mx := range records {
2213
+ got = append (got , mx .Host )
2214
+ }
2215
+ slices .Sort (got )
2216
+ return got
2217
+ }
2218
+
2219
+ got := hosts (records )
2220
+ if ! slices .Equal (got , expected ) {
2221
+ t .Errorf ("Unexpected record set: got %v, want %v" , got , expected )
2167
2222
}
2168
2223
records , err = LookupMX ("golang.org" )
2169
2224
if err .Error () != expectedErr .Error () {
2170
2225
t .Fatalf ("unexpected error: %s" , err )
2171
2226
}
2172
- if ! reflect .DeepEqual (records , expected ) {
2173
- t .Error ("Unexpected record set" )
2227
+ got = hosts (records )
2228
+ if ! slices .Equal (got , expected ) {
2229
+ t .Errorf ("Unexpected record set: got %v, want %v" , got , expected )
2174
2230
}
2175
2231
},
2176
2232
},
0 commit comments