diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc index 44c8a768d2c0d0ff353a7d1e96c969079c09dc8a..f72b8a30a64313b533581792e6d52ca61dacfad1 100644 --- a/src/cpp/server/server.cc +++ b/src/cpp/server/server.cc @@ -36,6 +36,7 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> +#include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc++/completion_queue.h> #include <grpc++/generic_service.h> @@ -355,8 +356,11 @@ class Server::AsyncRequest GRPC_FINAL : public CompletionQueueTag { array_.metadata[i].value + array_.metadata[i].value_length))); } if (generic_ctx_) { + // TODO(yangg) remove the copy here. generic_ctx_->method_ = call_details_.method; generic_ctx_->host_ = call_details_.host; + gpr_free(call_details_.method); + gpr_free(call_details_.host); } } ctx->call_ = call_;