diff options
author | Sree Kuchibhotla <sreek@google.com> | 2018-08-30 13:13:48 -0700 |
---|---|---|
committer | Sree Kuchibhotla <sreek@google.com> | 2018-08-30 13:13:48 -0700 |
commit | 0a7363ffcbbb578a7dc94f2bcffbe7b8ba78e1d2 (patch) | |
tree | 289915041ea2c584e6e3ca638311215d8b9024b4 /test/core/client_channel | |
parent | 7269fd47eb12f9383535c657b855286cd4570d9f (diff) |
Add a test to parse invalid addresses
Diffstat (limited to 'test/core/client_channel')
-rw-r--r-- | test/core/client_channel/parse_address_test.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/test/core/client_channel/parse_address_test.cc b/test/core/client_channel/parse_address_test.cc index ae157fbb8b..798600293b 100644 --- a/test/core/client_channel/parse_address_test.cc +++ b/test/core/client_channel/parse_address_test.cc @@ -91,6 +91,14 @@ static void test_grpc_parse_ipv6(const char* uri_text, const char* host, grpc_uri_destroy(uri); } +/* Test parsing invalid ipv6 addresses (valid uri_text but invalid ipv6 addr) */ +static void test_grpc_parse_ipv6_invalid(const char* uri_text) { + grpc_core::ExecCtx exec_ctx; + grpc_uri* uri = grpc_uri_parse(uri_text, 0); + grpc_resolved_address addr; + GPR_ASSERT(!grpc_parse_ipv6(uri, &addr)); +} + int main(int argc, char** argv) { grpc_test_init(argc, argv); grpc_init(); @@ -100,5 +108,10 @@ int main(int argc, char** argv) { test_grpc_parse_ipv6("ipv6:[2001:db8::1]:12345", "2001:db8::1", 12345, 0); test_grpc_parse_ipv6("ipv6:[2001:db8::1%252]:12345", "2001:db8::1", 12345, 2); - grpc_shutdown(); + /* Address length greater than GRPC_INET6_ADDRSTRLEN */ + test_grpc_parse_ipv6_invalid( + "ipv6:WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW45%" + "v6:45%x$1*"); + + test_grpc_parse grpc_shutdown(); } |