diff options
author | Craig Tiller <ctiller@google.com> | 2016-04-29 16:47:27 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2016-04-29 16:47:27 -0700 |
commit | 4ee1a627230c8564dfdab5247e8703e0eb10d5c8 (patch) | |
tree | ed50fd4906bdb424b4b694e0db276e67d7475e94 /include | |
parent | 90b4a87d3ba78326d7ff523b3412684aa905670e (diff) |
Stress test fixes
- properly fail a Read() on a stream if we fail to parse a protobuf
- fix an ordering problem with the chttp2 transport global lock, whereby
a sequence of two operations could be swapped - this resulted in
slices being returned to the upper layers in the wrong order,
corrupting data
Diffstat (limited to 'include')
-rw-r--r-- | include/grpc++/impl/codegen/call.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h index aea1a6acec..d081b7d9c5 100644 --- a/include/grpc++/impl/codegen/call.h +++ b/include/grpc++/impl/codegen/call.h @@ -281,10 +281,9 @@ class CallOpRecvMessage { if (message_ == nullptr) return; if (recv_buf_) { if (*status) { - got_message = true; - *status = SerializationTraits<R>::Deserialize(recv_buf_, message_, - max_message_size) - .ok(); + got_message = *status = SerializationTraits<R>::Deserialize( + recv_buf_, message_, max_message_size) + .ok(); } else { got_message = false; g_core_codegen_interface->grpc_byte_buffer_destroy(recv_buf_); |