aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2017-11-07 17:18:55 -0800
committerGravatar ncteisen <ncteisen@gmail.com>2017-11-07 17:18:55 -0800
commit5dd0d6fadb20f297ec04753a19f1e2a2fd03735d (patch)
tree34d75442dc606cfbbe27b0709ea8c11aaf96c20e
parentc03867ff224a98dab5a93b3ba70b95c46f05a440 (diff)
Fix internal UBSAN failure
-rw-r--r--src/core/ext/filters/client_channel/uri_parser.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/ext/filters/client_channel/uri_parser.cc b/src/core/ext/filters/client_channel/uri_parser.cc
index 917e65342b..1cc52dec12 100644
--- a/src/core/ext/filters/client_channel/uri_parser.cc
+++ b/src/core/ext/filters/client_channel/uri_parser.cc
@@ -59,7 +59,9 @@ static grpc_uri* bad_uri(const char* uri_text, size_t pos, const char* section,
static char* decode_and_copy_component(grpc_exec_ctx* exec_ctx, const char* src,
size_t begin, size_t end) {
grpc_slice component =
- grpc_slice_from_copied_buffer(src + begin, end - begin);
+ (begin == NOT_SET || end == NOT_SET)
+ ? grpc_empty_slice()
+ : grpc_slice_from_copied_buffer(src + begin, end - begin);
grpc_slice decoded_component =
grpc_permissive_percent_decode_slice(component);
char* out = grpc_dump_slice(decoded_component, GPR_DUMP_ASCII);