diff options
author | 2016-05-12 15:34:59 -0700 | |
---|---|---|
committer | 2016-05-12 15:34:59 -0700 | |
commit | 8e5c934d6f0f39886549711275ff5bc96fa95e78 (patch) | |
tree | f400dd7d96750153157230906b42d4fb776cce55 /src/core/lib/surface/server.c | |
parent | 375a3a60c36c11f93659ab8551a083a2c5423020 (diff) |
Fix leaks in server fuzzer
Diffstat (limited to 'src/core/lib/surface/server.c')
-rw-r--r-- | src/core/lib/surface/server.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/lib/surface/server.c b/src/core/lib/surface/server.c index e7e45dcc6d..9b23e92efa 100644 --- a/src/core/lib/surface/server.c +++ b/src/core/lib/surface/server.c @@ -719,6 +719,7 @@ static void server_on_recv_initial_metadata(grpc_exec_ctx *exec_ctx, void *ptr, call_data *calld = elem->call_data; gpr_timespec op_deadline; + GRPC_ERROR_REF(error); grpc_metadata_batch_filter(calld->recv_initial_metadata, server_filter, elem); op_deadline = calld->recv_initial_metadata->deadline; if (0 != gpr_time_cmp(op_deadline, gpr_inf_future(op_deadline.clock_type))) { @@ -727,12 +728,12 @@ static void server_on_recv_initial_metadata(grpc_exec_ctx *exec_ctx, void *ptr, if (calld->host && calld->path) { /* do nothing */ } else { + GRPC_ERROR_UNREF(error); error = GRPC_ERROR_CREATE_REFERENCING("Missing :authority or :path", &error, 1); } - calld->on_done_recv_initial_metadata->cb( - exec_ctx, calld->on_done_recv_initial_metadata->cb_arg, error); + grpc_exec_ctx_push(exec_ctx, calld->on_done_recv_initial_metadata, error, NULL); } static void server_mutate_op(grpc_call_element *elem, |