From 2a7b382767118e4f67ad0c4324c84c712f7753b8 Mon Sep 17 00:00:00 2001 From: Craig Peterson Date: Thu, 22 Mar 2018 11:52:52 -0400 Subject: [PATCH] Better validate NAMESERVER format. (#350) * remove misleading ip field we don't touch --- models/dns.go | 3 +- pkg/js/helpers.js | 18 +--- pkg/js/js_test.go | 1 + pkg/js/static.go | 169 ++++++++++++++++----------------- pkg/nameservers/nameservers.go | 2 +- 5 files changed, 92 insertions(+), 101 deletions(-) diff --git a/models/dns.go b/models/dns.go index c50d61f6a..a104662e1 100644 --- a/models/dns.go +++ b/models/dns.go @@ -42,8 +42,7 @@ type DNSProviderConfig struct { // Nameserver describes a nameserver. type Nameserver struct { - Name string `json:"name"` // Normalized to a FQDN with NO trailing "." - Target string `json:"target"` + Name string `json:"name"` // Normalized to a FQDN with NO trailing "." } // StringsToNameservers constructs a list of *Nameserver structs using a list of FQDNs. diff --git a/pkg/js/helpers.js b/pkg/js/helpers.js index b778daf11..7ccef2e97 100644 --- a/pkg/js/helpers.js +++ b/pkg/js/helpers.js @@ -294,24 +294,16 @@ var MX = recordBuilder('MX', { }, }); -function checkArgs(checks, args, desc) { - if (args.length < checks.length) { - throw desc; - } - for (var i = 0; i < checks.length; i++) { - if (!checks[i](args[i])) { - throw desc + ' - argument ' + i + ' is not correct type'; - } - } -} - // NS(name,target, recordModifiers...) var NS = recordBuilder('NS'); // NAMESERVER(name,target) -function NAMESERVER(name, target) { +function NAMESERVER(name) { + if (arguments.length != 1){ + throw("NAMESERVER only accepts one argument for name.") + } return function(d) { - d.nameservers.push({ name: name, target: target }); + d.nameservers.push({ name: name }); }; } diff --git a/pkg/js/js_test.go b/pkg/js/js_test.go index 45ea6d386..5d9eb2ca9 100644 --- a/pkg/js/js_test.go +++ b/pkg/js/js_test.go @@ -78,6 +78,7 @@ func TestErrors(t *testing.T) { {"CF_TEMP_REDIRECT With comma", `D("foo.com","reg",CF_TEMP_REDIRECT("foo.com","baa,a"))`}, {"Bad cidr", `D(reverse("foo.com"), "reg")`}, {"Dup domains", `D("example.org", "reg"); D("example.org", "reg")`}, + {"Bad NAMESERVER", `D("example.com","reg", NAMESERVER("@","ns1.foo.com."))`}, } for _, tst := range tests { t.Run(tst.desc, func(t *testing.T) { diff --git a/pkg/js/static.go b/pkg/js/static.go index f3c67f49b..e696b5da8 100644 --- a/pkg/js/static.go +++ b/pkg/js/static.go @@ -192,93 +192,92 @@ var _escData = map[string]*_escFile{ "/helpers.js": { local: "pkg/js/helpers.js", - size: 18525, + size: 18327, modtime: 0, compressed: ` -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 -lvpVoO5xbiRY/P8AAAD//54SjJZdSAAA +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 +E9whkYR1QP3j3ECy+P8BAAD//1ihD1KXRwAA `, }, diff --git a/pkg/nameservers/nameservers.go b/pkg/nameservers/nameservers.go index 362e26e00..ba5fcf41f 100644 --- a/pkg/nameservers/nameservers.go +++ b/pkg/nameservers/nameservers.go @@ -57,7 +57,7 @@ func AddNSRecords(dc *models.DomainConfig) { rc.SetLabel("@", dc.Name) t := ns.Name if !strings.HasSuffix(t, ".") { - rc.SetTarget(t + ".") + t += "." } rc.SetTarget(t)