From cb6ca3b0c46eca65a56c71a1c9fc3c1ea7c6a104 Mon Sep 17 00:00:00 2001 From: Simon Zolin Date: Mon, 24 Aug 2020 20:06:53 +0300 Subject: [PATCH] - windows: install: fix crash due to empty DHCP server pointer #2036 Squashed commit of the following: commit 5c70d28b241d1a98e034f6798dade073b1b42511 Author: Simon Zolin Date: Mon Aug 24 18:42:21 2020 +0300 - windows: install: fix crash due to empty DHCP server pointer We should not assign a Go interface value, otherwise `==nil` check doesn't work. --- dnsforward/dnsforward.go | 4 ++-- home/dns.go | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dnsforward/dnsforward.go b/dnsforward/dnsforward.go index 8d5ec767..87093879 100644 --- a/dnsforward/dnsforward.go +++ b/dnsforward/dnsforward.go @@ -82,9 +82,9 @@ func NewServer(p DNSCreateParams) *Server { s.dnsFilter = p.DNSFilter s.stats = p.Stats s.queryLog = p.QueryLog - s.dhcpServer = p.DHCPServer - if s.dhcpServer != nil { + if p.DHCPServer != nil { + s.dhcpServer = p.DHCPServer s.dhcpServer.SetOnLeaseChanged(s.onDHCPLeaseChanged) s.onDHCPLeaseChanged(dhcpd.LeaseChangedAdded) } diff --git a/home/dns.go b/home/dns.go index 1ff0da32..2d647f94 100644 --- a/home/dns.go +++ b/home/dns.go @@ -62,10 +62,12 @@ func initDNSServer() error { Context.dnsFilter = dnsfilter.New(&filterConf, nil) p := dnsforward.DNSCreateParams{ - DNSFilter: Context.dnsFilter, - Stats: Context.stats, - QueryLog: Context.queryLog, - DHCPServer: Context.dhcpServer, + DNSFilter: Context.dnsFilter, + Stats: Context.stats, + QueryLog: Context.queryLog, + } + if Context.dhcpServer != nil { + p.DHCPServer = Context.dhcpServer } Context.dnsServer = dnsforward.NewServer(p) dnsConfig := generateServerConfig()