Fix test bug detected by quiche.ubsan.

PiperOrigin-RevId: 421668427
diff --git a/http2/decoder/decode_buffer.h b/http2/decoder/decode_buffer.h
index 4757c06..3d0f5d5 100644
--- a/http2/decoder/decode_buffer.h
+++ b/http2/decoder/decode_buffer.h
@@ -26,13 +26,15 @@
 
 class QUICHE_EXPORT_PRIVATE DecodeBuffer {
  public:
+  // We assume the decode buffers will typically be modest in size (i.e. often a
+  // few KB, perhaps as high as 100KB). Let's make sure during testing that we
+  // don't go very high, with 32MB selected rather arbitrarily. This is exposed
+  // to support testing.
+  static constexpr size_t kMaxDecodeBufferLength = 1 << 25;
+
   DecodeBuffer(const char* buffer, size_t len)
       : buffer_(buffer), cursor_(buffer), beyond_(buffer + len) {
     QUICHE_DCHECK(buffer != nullptr);
-    // We assume the decode buffers will typically be modest in size (i.e. often
-    // a few KB, perhaps as high as 100KB). Let's make sure during testing that
-    // we don't go very high, with 32MB selected rather arbitrarily.
-    const size_t kMaxDecodeBufferLength = 1 << 25;
     QUICHE_DCHECK_LE(len, kMaxDecodeBufferLength);
   }
   explicit DecodeBuffer(absl::string_view s)
diff --git a/http2/decoder/decode_buffer_test.cc b/http2/decoder/decode_buffer_test.cc
index 685107a..54c0fea 100644
--- a/http2/decoder/decode_buffer_test.cc
+++ b/http2/decoder/decode_buffer_test.cc
@@ -132,9 +132,14 @@
 TEST(DecodeBufferDeathTest, ModestBufferSizeRequired) {
   EXPECT_DEBUG_DEATH(
       {
-        const char data[] = "abc";
-        size_t len = 0;
-        DecodeBuffer b(data, ~len);
+        // This depends on being able to allocate a fairly large array on the
+        // stack. If that fails, we can instead do this:
+        //
+        //   std::string data(DecodeBuffer::kMaxDecodeBufferLength + 1, ' ');
+        //   DecodeBuffer b(data.data(), data.size());
+
+        const char data[DecodeBuffer::kMaxDecodeBufferLength + 1] = {};
+        DecodeBuffer b(data, sizeof data);
       },
       "Max.*Length");
 }