@@ -1956,3 +1956,43 @@ func TestCVE202133195(t *testing.T) {
1956
1956
t .Errorf ("LookupAddr returned unexpected error, got %q, want %q" , err , expected )
1957
1957
}
1958
1958
}
1959
+
1960
+ func TestNullMX (t * testing.T ) {
1961
+ fake := fakeDNSServer {
1962
+ rh : func (n , _ string , q dnsmessage.Message , _ time.Time ) (dnsmessage.Message , error ) {
1963
+ r := dnsmessage.Message {
1964
+ Header : dnsmessage.Header {
1965
+ ID : q .Header .ID ,
1966
+ Response : true ,
1967
+ RCode : dnsmessage .RCodeSuccess ,
1968
+ },
1969
+ Questions : q .Questions ,
1970
+ Answers : []dnsmessage.Resource {
1971
+ {
1972
+ Header : dnsmessage.ResourceHeader {
1973
+ Name : q .Questions [0 ].Name ,
1974
+ Type : dnsmessage .TypeMX ,
1975
+ Class : dnsmessage .ClassINET ,
1976
+ },
1977
+ Body : & dnsmessage.MXResource {
1978
+ MX : dnsmessage .MustNewName ("." ),
1979
+ },
1980
+ },
1981
+ },
1982
+ }
1983
+ return r , nil
1984
+ },
1985
+ }
1986
+ r := Resolver {PreferGo : true , Dial : fake .DialContext }
1987
+ rrset , err := r .LookupMX (context .Background (), "golang.org" )
1988
+ if err != nil {
1989
+ t .Fatalf ("LookupMX: %v" , err )
1990
+ }
1991
+ if want := []* MX {& MX {Host : "." }}; ! reflect .DeepEqual (rrset , want ) {
1992
+ records := []string {}
1993
+ for _ , rr := range rrset {
1994
+ records = append (records , fmt .Sprintf ("%v" , rr ))
1995
+ }
1996
+ t .Errorf ("records = [%v]; want [%v]" , strings .Join (records , " " ), want [0 ])
1997
+ }
1998
+ }
0 commit comments