aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Sree Kuchibhotla <sreecha@users.noreply.github.com>2016-02-22 17:45:43 -0800
committerGravatar Sree Kuchibhotla <sreecha@users.noreply.github.com>2016-02-22 17:45:43 -0800
commitacbcdb6d9416ce2985e044338d8887c29aba7e85 (patch)
tree3a68d6313651fa090b35638a679f326334b06dcb /src
parent349bba9179f27a058470de3c2fd2ac6c9ccb80b5 (diff)
parent857c4703ce9791ebc431181afc8a20559a8b67c5 (diff)
Merge pull request #5347 from yang-g/check_error_in_read
Discard the read buffer on stream error
Diffstat (limited to 'src')
-rw-r--r--src/core/transport/chttp2_transport.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c
index 617d98875c..c3efc36cc5 100644
--- a/src/core/transport/chttp2_transport.c
+++ b/src/core/transport/chttp2_transport.c
@@ -1019,6 +1019,11 @@ static void check_read_ops(grpc_exec_ctx *exec_ctx,
stream_global->recv_initial_metadata_ready = NULL;
}
if (stream_global->recv_message_ready != NULL) {
+ while (stream_global->seen_error &&
+ (bs = grpc_chttp2_incoming_frame_queue_pop(
+ &stream_global->incoming_frames)) != NULL) {
+ grpc_byte_stream_destroy(exec_ctx, bs);
+ }
if (stream_global->incoming_frames.head != NULL) {
*stream_global->recv_message = grpc_chttp2_incoming_frame_queue_pop(
&stream_global->incoming_frames);