From cf384a18dc5abcd08276b42f7888fa5626f064c4 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 28 Jun 2017 14:38:37 +0800 Subject: [PATCH] common/dns_resolve: do not assert with misconfigured SRV RR Signed-off-by: Kefu Chai --- src/common/dns_resolve.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/common/dns_resolve.cc b/src/common/dns_resolve.cc index c94d8a448eb55..3b984a61c82cd 100644 --- a/src/common/dns_resolve.cc +++ b/src/common/dns_resolve.cc @@ -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}; } } -- 2.39.5