aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/surface/server.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2016-05-12 15:34:59 -0700
committerGravatar Craig Tiller <ctiller@google.com>2016-05-12 15:34:59 -0700
commit8e5c934d6f0f39886549711275ff5bc96fa95e78 (patch)
treef400dd7d96750153157230906b42d4fb776cce55 /src/core/lib/surface/server.c
parent375a3a60c36c11f93659ab8551a083a2c5423020 (diff)
Fix leaks in server fuzzer
Diffstat (limited to 'src/core/lib/surface/server.c')
-rw-r--r--src/core/lib/surface/server.c5
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,