Browse Source

fixed a panic issue caused by not checking type of input address in fake dns

Shelikhoo 4 years ago
parent
commit
8ba4ac15ac
1 changed files with 6 additions and 0 deletions
  1. 6 0
      app/dns/fakedns/fake.go

+ 6 - 0
app/dns/fakedns/fake.go

@@ -24,6 +24,9 @@ type Holder struct {
 }
 }
 
 
 func (fkdns *Holder) IsIPInIPPool(ip net.Address) bool {
 func (fkdns *Holder) IsIPInIPPool(ip net.Address) bool {
+	if ip.Family().IsDomain() {
+		return false
+	}
 	return fkdns.ipRange.Contains(ip.IP())
 	return fkdns.ipRange.Contains(ip.IP())
 }
 }
 
 
@@ -139,6 +142,9 @@ type HolderMulti struct {
 }
 }
 
 
 func (h *HolderMulti) IsIPInIPPool(ip net.Address) bool {
 func (h *HolderMulti) IsIPInIPPool(ip net.Address) bool {
+	if ip.Family().IsDomain() {
+		return false
+	}
 	for _, v := range h.holders {
 	for _, v := range h.holders {
 		if v.IsIPInIPPool(ip) {
 		if v.IsIPInIPPool(ip) {
 			return true
 			return true