diff options
-rw-r--r-- | chromium/services/device/hid/hid_connection_impl.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/chromium/services/device/hid/hid_connection_impl.cc b/chromium/services/device/hid/hid_connection_impl.cc index 131eee19f57..508114a7626 100644 --- a/chromium/services/device/hid/hid_connection_impl.cc +++ b/chromium/services/device/hid/hid_connection_impl.cc @@ -54,11 +54,12 @@ void HidConnectionImpl::OnInputReport( scoped_refptr<base::RefCountedBytes> buffer, size_t size) { DCHECK(client_); - uint8_t report_id = buffer->data()[0]; - uint8_t* begin = &buffer->data()[1]; - uint8_t* end = buffer->data().data() + size; - std::vector<uint8_t> data(begin, end); - client_->OnInputReport(report_id, data); + DCHECK_GE(size, 1u); + std::vector<uint8_t> data; + if (size > 1) { + data = std::vector<uint8_t>(buffer->front() + 1, buffer->front() + size); + } + client_->OnInputReport(/*report_id=*/buffer->data()[0], data); } void HidConnectionImpl::Read(ReadCallback callback) { |