diff --git a/src/core/surface/call.c b/src/core/surface/call.c index d15a3bcbade..786535a5797 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -927,6 +927,7 @@ static int add_slice_to_message(grpc_call *call, gpr_slice slice) { } /* we have to be reading a message to know what to do here */ if (!call->reading_message) { + gpr_slice_unref(slice); cancel_with_status(call, GRPC_STATUS_INVALID_ARGUMENT, "Received payload data while not reading a message"); return 0;