diff --git a/src/cpp/util/byte_buffer.cc b/src/cpp/util/byte_buffer.cc
index df873eb1ceb6b401bac02e32782f62dabde48621..2952f94b2403e3743d87b8d0ed244c91472ad161 100644
--- a/src/cpp/util/byte_buffer.cc
+++ b/src/cpp/util/byte_buffer.cc
@@ -69,6 +69,7 @@ void ByteBuffer::Dump(std::vector<Slice>* slices) const {
   while (grpc_byte_buffer_reader_next(&reader, &s)) {
     slices->push_back(Slice(s, Slice::STEAL_REF));
   }
+  grpc_byte_buffer_reader_destroy(&reader);
 }
 
 size_t ByteBuffer::Length() const {
@@ -88,4 +89,4 @@ ByteBuffer& ByteBuffer::operator=(const ByteBuffer& buf) {
   return *this;
 }
 
-}  // namespace grpc
\ No newline at end of file
+}  // namespace grpc