aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-07-21 14:51:21 -0700
committerGravatar GitHub <noreply@github.com>2017-07-21 14:51:21 -0700
commita5b7a8e8c20e867c8ae66497dc785ff25be4d6a4 (patch)
treecfb0dceb9da090aa5446ac17afe190f30b2ef90b /src/core/ext
parentc463ad97680c23c2a5118b336fb3acd264ff40fe (diff)
parentdf1c5d6826af5c6cb3435ed7d4918d3cb91bb7e7 (diff)
Merge pull request #9840 from ctiller/maxstrm
Check max streams
Diffstat (limited to 'src/core/ext')
-rw-r--r--src/core/ext/transport/chttp2/transport/parsing.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/ext/transport/chttp2/transport/parsing.c b/src/core/ext/transport/chttp2/transport/parsing.c
index 3c8b470b4f..9d46cfa22e 100644
--- a/src/core/ext/transport/chttp2/transport/parsing.c
+++ b/src/core/ext/transport/chttp2/transport/parsing.c
@@ -657,6 +657,10 @@ static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
"ignoring grpc_chttp2_stream with non-client generated index %d",
t->incoming_stream_id));
return init_skip_frame_parser(exec_ctx, t, 1);
+ } else if (grpc_chttp2_stream_map_size(&t->stream_map) >=
+ t->settings[GRPC_ACKED_SETTINGS]
+ [GRPC_CHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS]) {
+ return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Max stream count exceeded");
}
t->last_new_stream_id = t->incoming_stream_id;
s = t->incoming_stream =