aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/bad_client/tests
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-12-08 08:53:09 -0800
committerGravatar Craig Tiller <ctiller@google.com>2015-12-08 08:53:09 -0800
commitd391b560ece42fd3cae93df5551dbd2a42785535 (patch)
tree32b39cb4f7ce80ea1d802d0c5ccf7ff95e767cfe /test/core/bad_client/tests
parente9307929d440d9323a3aa5655c65deed5f367e81 (diff)
Add integer overflow cases
Diffstat (limited to 'test/core/bad_client/tests')
-rw-r--r--test/core/bad_client/tests/headers.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/core/bad_client/tests/headers.c b/test/core/bad_client/tests/headers.c
index c3f7edbd50..036a33ccb7 100644
--- a/test/core/bad_client/tests/headers.c
+++ b/test/core/bad_client/tests/headers.c
@@ -207,6 +207,20 @@ int main(int argc, char **argv) {
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x80\x80\x00",
0);
+ /* overflow on byte 4 */
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+ "\x00\x00\x06\x01\x04\x00\x00\x00\x01"
+ "\xff\x80\x80\x80\x80\x7f",
+ GRPC_BAD_CLIENT_DISCONNECT);
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+ "\x00\x00\x06\x01\x04\x00\x00\x00\x01"
+ "\xff\xff\xff\xff\xff\x0f",
+ GRPC_BAD_CLIENT_DISCONNECT);
+ /* overflow after byte 4 */
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+ "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
+ "\xff\x80\x80\x80\x80\x80\x80\x02",
+ 0);
/* end of headers mid-opcode */
GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
"\x00\x00\x01\x01\x04\x00\x00\x00\x01"
@@ -219,11 +233,22 @@ int main(int argc, char **argv) {
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\x3f\xe1\x1f",
GRPC_BAD_CLIENT_DISCONNECT);
+ /* dynamic table size update: set too large */
GRPC_RUN_BAD_CLIENT_TEST(verifier,
PFX_STR
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\x3f\xf1\x1f",
0);
+ /* dynamic table size update: set twice */
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+ "\x00\x00\x04\x01\x04\x00\x00\x00\x01"
+ "\x20\x3f\xe1\x1f",
+ GRPC_BAD_CLIENT_DISCONNECT);
+ /* dynamic table size update: set thrice */
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+ "\x00\x00\x03\x01\x04\x00\x00\x00\x01"
+ "\x20\x20\x20",
+ 0);
/* non-ending header followed by continuation frame */
GRPC_RUN_BAD_CLIENT_TEST(verifier,