From c13329b328a9c622b1416496b82acff4f3ae3c0c Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 31 Jul 2014 21:22:15 +0900 Subject: [PATCH] Treat delta 0 WINDOW_UPDATE as error --- lib/nghttp2_session.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/nghttp2_session.c b/lib/nghttp2_session.c index cd7c1df6..ed83b77d 100644 --- a/lib/nghttp2_session.c +++ b/lib/nghttp2_session.c @@ -3732,7 +3732,8 @@ static int session_on_connection_window_update_received { int rv; /* Handle connection-level flow control */ - if(NGHTTP2_MAX_WINDOW_SIZE - frame->window_update.window_size_increment < + if(frame->window_update.window_size_increment == 0 || + NGHTTP2_MAX_WINDOW_SIZE - frame->window_update.window_size_increment < session->remote_window_size) { return session_handle_invalid_connection (session, frame, NGHTTP2_FLOW_CONTROL_ERROR, NULL); @@ -3771,7 +3772,8 @@ static int session_on_stream_window_update_received (session, frame, NGHTTP2_PROTOCOL_ERROR, "WINDOW_UPADATE to reserved stream"); } - if(NGHTTP2_MAX_WINDOW_SIZE - frame->window_update.window_size_increment < + if(frame->window_update.window_size_increment == 0 || + NGHTTP2_MAX_WINDOW_SIZE - frame->window_update.window_size_increment < stream->remote_window_size) { return session_handle_invalid_stream(session, frame, NGHTTP2_FLOW_CONTROL_ERROR);