]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/dns_resolve: do not assert with misconfigured SRV RR
authorKefu Chai <kchai@redhat.com>
Wed, 28 Jun 2017 06:38:37 +0000 (14:38 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 29 Jun 2017 05:50:34 +0000 (13:50 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/common/dns_resolve.cc

index c94d8a448eb55f6b2dbe32e29a3ddc647f74a2cd..3b984a61c82cd5428cd28d939da487298a2e1648 100644 (file)
@@ -350,8 +350,13 @@ int DNSResolver::resolve_srv_hosts(CephContext *cct, const string& service_name,
     if (r == 0) {
       addr.set_port(port);
       string target = full_target;
-      assert(target.find(srv_domain) != target.npos);
-      target = target.substr(0, target.find(srv_domain));
+      auto end = target.find(srv_domain);
+      if (end == target.npos) {
+       lderr(cct) << "resolved target not in search domain: "
+                  << target << " / " << srv_domain << dendl;
+       return -EINVAL;
+      }
+      target = target.substr(0, end);
       (*srv_hosts)[target] = {priority, addr};
     }
   }