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