diff --git a/test/cpp/microbenchmarks/bm_call_create.cc b/test/cpp/microbenchmarks/bm_call_create.cc
index bf09046798a093346ce5c425f5723364696f98e0..4224bd6ddcdc6378bee31d1cd01ae4b1ddf69d6c 100644
--- a/test/cpp/microbenchmarks/bm_call_create.cc
+++ b/test/cpp/microbenchmarks/bm_call_create.cc
@@ -294,6 +294,7 @@ static void BM_FilterInitDestroy(benchmark::State &state) {
   }
   grpc_channel_stack_destroy(&exec_ctx, channel_stack);
   grpc_exec_ctx_finish(&exec_ctx);
+  gpr_free(channel_stack);
 
   state.SetLabel(label.str());
 }
@@ -360,6 +361,7 @@ static void BM_FilterInitSendInitialMetadataThenDestroy(
   }
   grpc_channel_stack_destroy(&exec_ctx, channel_stack);
   grpc_exec_ctx_finish(&exec_ctx);
+  gpr_free(channel_stack);
 
   state.SetLabel(label.str());
 }