| Index: remoting/base/decoder_verbatim.cc
|
| diff --git a/remoting/base/decoder_verbatim.cc b/remoting/base/decoder_verbatim.cc
|
| index b944bbcaf15d6f9f68ae438104d431607de46c28..fd0b3d1070864b39df76f0dfc6cd4f74ae85d3ab 100644
|
| --- a/remoting/base/decoder_verbatim.cc
|
| +++ b/remoting/base/decoder_verbatim.cc
|
| @@ -102,7 +102,20 @@ bool DecoderVerbatim::HandleRectData(ChromotingHostMessage* message) {
|
| // Copy the data line by line.
|
| const int src_stride = bytes_per_pixel_ * rect_width_;
|
| const char* src =
|
| - message->update_stream_packet().rect_data().data().c_str();
|
| + message->update_stream_packet().rect_data().data().data();
|
| +
|
| + // Make sure there's enough data in |message|.
|
| + const int src_size =
|
| + message->update_stream_packet().rect_data().data().length();
|
| + if (src_size != src_stride * rect_height_)
|
| + return false;
|
| +
|
| + // Make sure there's enough space for us to write to.
|
| + if (frame_->height() < static_cast<size_t>(rect_height_) ||
|
| + frame_->stride(media::VideoFrame::kRGBPlane) < src_stride) {
|
| + return false;
|
| + }
|
| +
|
| int src_stride_dir = src_stride;
|
| if (reverse_rows_) {
|
| // Copy rows from bottom to top to flip the image vertically.
|
|
|