From 5ec46dd5b1a8840be3dbd8800419736a40a85bd9 Mon Sep 17 00:00:00 2001 From: dougk Date: Wed, 18 Feb 2015 15:54:37 -0800 Subject: quic_client should check return codes when parsing command-line flags. This is a minimal fix to prevent silently doing the wrong thing. A better fix would resolve names, and use the URL itself as a fallback. BUG=none Review URL: https://codereview.chromium.org/938853002 Cr-Commit-Position: refs/heads/master@{#316925} --- net/quic/quic_server_bin.cc | 3 +++ net/tools/quic/quic_client_bin.cc | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'net') diff --git a/net/quic/quic_server_bin.cc b/net/quic/quic_server_bin.cc index 320f3da..e7c2a6c 100644 --- a/net/quic/quic_server_bin.cc +++ b/net/quic/quic_server_bin.cc @@ -51,6 +51,9 @@ int main(int argc, char *argv[]) { int port; if (base::StringToInt(line->GetSwitchValueASCII("port"), &port)) { FLAGS_port = port; + } else { + LOG(ERROR) << "--port must be an integer\n"; + return 1; } } diff --git a/net/tools/quic/quic_client_bin.cc b/net/tools/quic/quic_client_bin.cc index 3800944..66517ca 100644 --- a/net/tools/quic/quic_client_bin.cc +++ b/net/tools/quic/quic_client_bin.cc @@ -128,6 +128,9 @@ int main(int argc, char *argv[]) { int port; if (base::StringToInt(line->GetSwitchValueASCII("port"), &port)) { FLAGS_port = port; + } else { + std::cerr << "--port must be an integer\n"; + return 1; } } if (line->HasSwitch("body")) { @@ -170,8 +173,14 @@ int main(int argc, char *argv[]) { GURL url(urls[0]); string host = FLAGS_host; // TODO(rtenneti): get ip_addr from hostname by doing host resolution. - CHECK(!host.empty()); - net::ParseIPLiteralToNumber(host, &ip_addr); + if (host.empty()) { + LOG(ERROR) << "--host must be specified\n"; + return 1; + } + if (!net::ParseIPLiteralToNumber(host, &ip_addr)) { + LOG(ERROR) << "--host could not be parsed as an IP address\n"; + return 1; + } string host_port = net::IPAddressToStringWithPort(ip_addr, FLAGS_port); VLOG(1) << "Resolved " << host << " to " << host_port << endl; -- cgit v1.1