Fixed some memory leaks with http/3 (#9336)

diff --git a/proxy/http3/Http3HeaderFramer.cc b/proxy/http3/Http3HeaderFramer.cc
index 9cd17a1..38d15e7 100644
--- a/proxy/http3/Http3HeaderFramer.cc
+++ b/proxy/http3/Http3HeaderFramer.cc
@@ -36,6 +36,14 @@
   http_parser_init(&this->_http_parser);
 }
 
+Http3HeaderFramer::~Http3HeaderFramer()
+{
+  _header.destroy();
+  if (_header_block != nullptr) {
+    free_MIOBuffer(_header_block);
+  }
+}
+
 Http3FrameUPtr
 Http3HeaderFramer::generate_frame()
 {
diff --git a/proxy/http3/Http3HeaderFramer.h b/proxy/http3/Http3HeaderFramer.h
index 98f77ab..7a36905 100644
--- a/proxy/http3/Http3HeaderFramer.h
+++ b/proxy/http3/Http3HeaderFramer.h
@@ -38,6 +38,7 @@
 {
 public:
   Http3HeaderFramer(Http3Transaction *transaction, VIO *source, QPACK *qpack, uint64_t stream_id);
+  ~Http3HeaderFramer();
 
   // Http3FrameGenerator
   Http3FrameUPtr generate_frame() override;
diff --git a/proxy/http3/Http3Session.cc b/proxy/http3/Http3Session.cc
index 60d0f0f..aeb7c4d 100644
--- a/proxy/http3/Http3Session.cc
+++ b/proxy/http3/Http3Session.cc
@@ -55,6 +55,7 @@
 HQSession::remove_transaction(HQTransaction *trans)
 {
   this->_transaction_list.remove(trans);
+  delete trans;
 
   return;
 }