diff options
author | Mark D. Roth <roth@google.com> | 2016-09-22 11:20:27 -0700 |
---|---|---|
committer | Mark D. Roth <roth@google.com> | 2016-09-22 11:20:27 -0700 |
commit | d1604af241ec7adda656ccf320ceb374120b68e4 (patch) | |
tree | 3b7b13b7554b03bd584906c344c3140500c8de8d /src/core/ext | |
parent | 54dfd68a0e1378bfdc57b8f954ad1da39dadfde9 (diff) |
Fix asan failure.
Diffstat (limited to 'src/core/ext')
-rw-r--r-- | src/core/ext/lb_policy/grpclb/grpclb.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/ext/lb_policy/grpclb/grpclb.c b/src/core/ext/lb_policy/grpclb/grpclb.c index 4ea164e639..5412ea74cf 100644 --- a/src/core/ext/lb_policy/grpclb/grpclb.c +++ b/src/core/ext/lb_policy/grpclb/grpclb.c @@ -283,7 +283,7 @@ typedef struct glb_lb_policy { /** mutex protecting remaining members */ gpr_mu mu; - const char *server_name; // Does not own. + const char *server_name; grpc_client_channel_factory *cc_factory; /** for communicating with the LB server */ @@ -565,7 +565,7 @@ static grpc_lb_policy *glb_create(grpc_exec_ctx *exec_ctx, * policy is only instantiated and used in that case. * * Create a client channel over them to communicate with a LB service */ - glb_policy->server_name = args->server_name; + glb_policy->server_name = gpr_strdup(args->server_name); glb_policy->cc_factory = args->client_channel_factory; GPR_ASSERT(glb_policy->cc_factory != NULL); @@ -632,6 +632,7 @@ static void glb_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) { glb_lb_policy *glb_policy = (glb_lb_policy *)pol; GPR_ASSERT(glb_policy->pending_picks == NULL); GPR_ASSERT(glb_policy->pending_pings == NULL); + gpr_free((void *)glb_policy->server_name); grpc_channel_destroy(glb_policy->lb_channel); glb_policy->lb_channel = NULL; grpc_connectivity_state_destroy(exec_ctx, &glb_policy->state_tracker); |