diff --git a/src/http/http_session.cc b/src/http/http_session.cc index 96859a90be9..8948fdb5666 100644 --- a/src/http/http_session.cc +++ b/src/http/http_session.cc @@ -155,7 +155,6 @@ class HttpSession::RequestHandler : public Task { } void NotFound(HttpSession *session, const HttpRequest *request) { - string url = request->UrlPath().substr(1); static const char no_response[] = "HTTP/1.1 404 Not Found\r\n" "Content-Type: text/html; charset=UTF-8\r\n" diff --git a/src/vnsw/agent/oper/vn.cc b/src/vnsw/agent/oper/vn.cc index 8f9bda8b28d..a9bc1c3c211 100644 --- a/src/vnsw/agent/oper/vn.cc +++ b/src/vnsw/agent/oper/vn.cc @@ -201,12 +201,12 @@ bool VnEntry::GetPrefix(const Ip6Address &ip, Ip6Address *prefix, std::string VnEntry::GetProject() const { // TODO: update to get the project name from project-vn link. // Currently, this info doesnt come to the agent - std::size_t start_pos = name_.find(":") + 1; - std::size_t end_pos = name_.find(":", start_pos); - if (end_pos == std::string::npos) + std::string name(name_.c_str()); + char *saveptr; + if (strtok_r(const_cast(name.c_str()), ":", &saveptr) == NULL) return ""; - - return name_.substr(start_pos, end_pos - start_pos); + char *project = strtok_r(NULL, ":", &saveptr); + return (project == NULL) ? "" : std::string(project); } int VnEntry::GetVxLanId() const { diff --git a/src/vnsw/agent/services/metadata_proxy.cc b/src/vnsw/agent/services/metadata_proxy.cc index 04e8a476956..a319810f54b 100644 --- a/src/vnsw/agent/services/metadata_proxy.cc +++ b/src/vnsw/agent/services/metadata_proxy.cc @@ -171,7 +171,9 @@ MetadataProxy::HandleMetadataRequest(HttpSession *session, const HttpRequest *re header_options.push_back(std::string("X-Instance-ID-Signature: " + signature)); - std::string uri = request->UrlPath().substr(1); // ignore the first "/" + std::string uri = request->UrlPath(); + if (uri.size()) + uri = uri.substr(1); // ignore the first "/" const std::string &body = request->Body(); { HttpConnection *conn = GetProxyConnection(session, conn_close);