diff options
author | 2015-02-18 14:16:15 -0800 | |
---|---|---|
committer | 2015-02-18 14:16:15 -0800 | |
commit | 9be83eec1de2932946d61b774788ca18fb41e2fe (patch) | |
tree | f8672252e92ceff39ee7eccc571c31a33cf548eb /test/core/channel | |
parent | efad8fadd36899ff98ff616c349d181f2f1e4004 (diff) |
Fix use-after-free.
Transport and channel have different lifetimes, but share a metadata
context.
Make the metadata context ref counted, and have transport take a ref.
Diffstat (limited to 'test/core/channel')
-rw-r--r-- | test/core/channel/channel_stack_test.c | 2 | ||||
-rw-r--r-- | test/core/channel/metadata_buffer_test.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/test/core/channel/channel_stack_test.c b/test/core/channel/channel_stack_test.c index 0345f99bde..59a4564220 100644 --- a/test/core/channel/channel_stack_test.c +++ b/test/core/channel/channel_stack_test.c @@ -128,7 +128,7 @@ static void test_create_channel_stack(void) { grpc_channel_stack_destroy(channel_stack); gpr_free(channel_stack); - grpc_mdctx_orphan(metadata_context); + grpc_mdctx_unref(metadata_context); } int main(int argc, char **argv) { diff --git a/test/core/channel/metadata_buffer_test.c b/test/core/channel/metadata_buffer_test.c index 22776f8ca1..ba8100b7d2 100644 --- a/test/core/channel/metadata_buffer_test.c +++ b/test/core/channel/metadata_buffer_test.c @@ -182,7 +182,7 @@ static void test_case(size_t key_prefix_len, size_t value_prefix_len, gpr_free(stk); grpc_metadata_buffer_destroy(&buffer, GRPC_OP_OK); - grpc_mdctx_orphan(mdctx); + grpc_mdctx_unref(mdctx); } int main(int argc, char **argv) { |