Adds test coverage for the nul char appearing in header field names or values.
PiperOrigin-RevId: 431725966
diff --git a/http2/adapter/header_validator_test.cc b/http2/adapter/header_validator_test.cc
index 52148df..d1fd642 100644
--- a/http2/adapter/header_validator_test.cc
+++ b/http2/adapter/header_validator_test.cc
@@ -60,6 +60,15 @@
v.ValidateSingleHeader(name, "value");
EXPECT_EQ(HeaderValidator::HEADER_FIELD_INVALID, status);
}
+ // Test nul separately.
+ {
+ const absl::string_view name = is_pseudo_header
+ ? absl::string_view(":met\0hod", 8)
+ : absl::string_view("na\0me", 5);
+ HeaderValidator::HeaderStatus status =
+ v.ValidateSingleHeader(name, "value");
+ EXPECT_EQ(HeaderValidator::HEADER_FIELD_INVALID, status);
+ }
// Uppercase characters in header names should not be allowed.
const std::string uc_name = is_pseudo_header ? ":Method" : "Name";
HeaderValidator::HeaderStatus status =
@@ -83,6 +92,12 @@
v.ValidateSingleHeader("name", absl::StrCat("val", c, "ue"));
EXPECT_EQ(HeaderValidator::HEADER_FIELD_INVALID, status);
}
+ // Test nul separately.
+ {
+ HeaderValidator::HeaderStatus status =
+ v.ValidateSingleHeader("name", absl::string_view("val\0ue", 6));
+ EXPECT_EQ(HeaderValidator::HEADER_FIELD_INVALID, status);
+ }
}
TEST(HeaderValidatorTest, StatusHasInvalidChar) {