diff options
Diffstat (limited to 'test/core')
-rw-r--r-- | test/core/bad_client/tests/headers.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/core/bad_client/tests/headers.c b/test/core/bad_client/tests/headers.c index 7f0a9b82c3..abd2826111 100644 --- a/test/core/bad_client/tests/headers.c +++ b/test/core/bad_client/tests/headers.c @@ -262,11 +262,26 @@ int main(int argc, char **argv) { "\x00\x00\x00\x01\x00\x00\x00\x00\x01" "\x00\x00\x00\x00\x04\x00\x00\x00\x01", 0); + /* non-ending header followed by a continuation frame for a different stream */ + GRPC_RUN_BAD_CLIENT_TEST(verifier, + PFX_STR + "\x00\x00\x00\x01\x04\x00\x00\x00\x01" + "\x00\x00\x00\x01\x00\x00\x00\x00\x03" + "\x00\x00\x00\x09\x04\x00\x00\x00\x01", + 0); /* opening with a continuation frame */ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x09\x04\x00\x00\x00\x01", 0); + /* three header frames */ + GRPC_RUN_BAD_CLIENT_TEST(verifier, + PFX_STR + "\x00\x00\x00\x01\x04\x00\x00\x00\x01" + "\x00\x00\x00\x01\x04\x00\x00\x00\x01" + "\x00\x00\x00\x01\x04\x00\x00\x00\x01", + GRPC_BAD_CLIENT_DISCONNECT); + /* an invalid header found with fuzzing */ GRPC_RUN_BAD_CLIENT_TEST(verifier, |