diff --git a/src/maasserver/models/dnsdata.py b/src/maasserver/models/dnsdata.py
index 028b7ac..4907f67 100644
--- a/src/maasserver/models/dnsdata.py
+++ b/src/maasserver/models/dnsdata.py
@@ -327,9 +327,9 @@ class DNSData(CleanSave, TimestampedModel):
                 r"^(?P<pri>[0-9]+)\s+(?P<weight>[0-9]+)\s+(?P<port>[0-9]+)\s+"
                 r"(?P<target>.*)")
             res = spec.search(self.rrdata)
-            srv_host = res.groupdict()['target']
             if res is None:
                 raise ValidationError(INVALID_SRV_MSG)
+            srv_host = res.groupdict()['target']
             pri = int(res.groupdict()['pri'])
             weight = int(res.groupdict()['weight'])
             port = int(res.groupdict()['port'])
diff --git a/src/maasserver/models/tests/test_dnsdata.py b/src/maasserver/models/tests/test_dnsdata.py
index 3b769be..2e3ba31 100644
--- a/src/maasserver/models/tests/test_dnsdata.py
+++ b/src/maasserver/models/tests/test_dnsdata.py
@@ -132,6 +132,10 @@ class DNSDataTest(MAASServerTestCase):
                     "{'__all__': [\"%s\"]}" % INVALID_CNAME_MSG)):
             dnsdata.save()
 
+    def test_rejects_bad_srv(self):
+        with ExpectedException(ValidationError):
+            factory.make_DNSData(rrtype="SRV", rrdata="")
+
     def test_rejects_bad_sshfp_record(self):
         dnsresource = factory.make_DNSResource(no_ip_addresses=True)
         dnsdata = DNSData(
