pw_rpc: Release acquired buffer in RawServerWriter destructor

This fixes a bug in the RawServerWriter where it would crash if the user
acquired a payload buffer but didn't release it.

Change-Id: I684f3c62a6f24d9a827e3d5258502f0bbfd0ddd4
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/23380
Commit-Queue: Alexei Frolov <frolv@google.com>
Pigweed-Auto-Submit: Alexei Frolov <frolv@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
diff --git a/pw_rpc/base_server_writer.cc b/pw_rpc/base_server_writer.cc
index 942cf32..8c57ee1 100644
--- a/pw_rpc/base_server_writer.cc
+++ b/pw_rpc/base_server_writer.cc
@@ -78,6 +78,15 @@
   return call_.channel().Send(response_, ResponsePacket(payload));
 }
 
+Status BaseServerWriter::ReleasePayloadBuffer() {
+  if (!open()) {
+    return Status::FailedPrecondition();
+  }
+
+  call_.channel().Release(response_);
+  return Status::Ok();
+}
+
 void BaseServerWriter::Close() {
   if (!open()) {
     return;