Merge pull request #39 from mvrilo/fix-interface-conversion

Fix panic at interface conversion
This commit is contained in:
Simone Margaritelli 2018-02-01 18:43:20 +01:00 committed by GitHub
commit c02955fb40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -234,14 +234,18 @@ func (s *DNSSpoofer) shouldSpoof(domain string) bool {
} }
func (s *DNSSpoofer) onPacket(pkt gopacket.Packet) { func (s *DNSSpoofer) onPacket(pkt gopacket.Packet) {
eth := pkt.Layer(layers.LayerTypeEthernet).(*layers.Ethernet) typeEth := pkt.Layer(layers.LayerTypeEthernet)
udp := pkt.Layer(layers.LayerTypeUDP).(*layers.UDP) typeUDP := pkt.Layer(layers.LayerTypeUDP)
if typeEth == nil || typeUDP == nil {
if eth == nil || udp == nil {
return return
} else if s.All == true || bytes.Compare(eth.DstMAC, s.Session.Interface.HW) == 0 { }
eth := typeEth.(*layers.Ethernet)
if s.All || bytes.Compare(eth.DstMAC, s.Session.Interface.HW) == 0 {
dns, parsed := pkt.Layer(layers.LayerTypeDNS).(*layers.DNS) dns, parsed := pkt.Layer(layers.LayerTypeDNS).(*layers.DNS)
if parsed == true && dns.OpCode == layers.DNSOpCodeQuery && len(dns.Questions) > 0 && len(dns.Answers) == 0 { if parsed && dns.OpCode == layers.DNSOpCodeQuery && len(dns.Questions) > 0 && len(dns.Answers) == 0 {
udp := typeUDP.(*layers.UDP)
for _, q := range dns.Questions { for _, q := range dns.Questions {
qName := string(q.Name) qName := string(q.Name)
if s.shouldSpoof(qName) == true { if s.shouldSpoof(qName) == true {