21 #include <gtest/gtest.h>
28 #define APPEND_BUFFER(string, to_append) \
29 ((string).append((to_append), sizeof(to_append) - 1))
42 void FrameVerifier(
const std::string& attack_vector) {
45 args[1].client_validator =
nullptr;
46 args[1].client_payload = attack_vector.c_str();
47 args[1].client_payload_length = attack_vector.size();
51 TEST(OutOfBounds, MaxFrameSizeDataFrame) {
54 APPEND_BUFFER(out_of_bounds_data,
"\x01\x00\x00\x00\x00\x00\x00\x00\x01");
55 out_of_bounds_data.append(1 << 16,
'a');
56 FrameVerifier(out_of_bounds_data);
59 TEST(OutOfBounds, BadSizePriorityFrame) {
63 "\x00\x00\x03\x02\x00\x00\x00\x00\x01"
65 FrameVerifier(bad_size_priority_frame);
68 TEST(OutOfBounds, BadSizeRstStream) {
72 "\x00\x00\x02\x03\x00\x00\x00\x00\x01"
74 FrameVerifier(bad_size_rst_stream);
77 TEST(OutOfBounds, BadSizeSettings) {
81 "\x00\x00\x05\x04\x00\x00\x00\x00\x00"
82 "\x11\x11\x11\x11\x11");
83 FrameVerifier(bad_size_settings);
86 TEST(OutOfBounds, BadSizePing) {
90 "\x00\x00\x05\x06\x00\x00\x00\x00\x00"
91 "\x11\x11\x11\x11\x11");
92 FrameVerifier(bad_size_ping);
95 TEST(OutOfBounds, WindowUpdate) {
99 "\x00\x00\x01\x08\x00\x00\x00\x00\x00"
101 FrameVerifier(bad_size_window_update);
106 int main(
int argc,
char** argv) {