| Index: net/dns/dns_transaction.cc
|
| diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
| index 03eb7f26947887fdcb50a5cc9dc3c85968bd8b94..beb2197dd55b7bc50d39c71cb70d46c29bfd2a77 100644
|
| --- a/net/dns/dns_transaction.cc
|
| +++ b/net/dns/dns_transaction.cc
|
| @@ -392,8 +392,10 @@ class DnsTCPAttempt : public DnsAttempt {
|
| if (rv < 0)
|
| return rv;
|
|
|
| - base::WriteBigEndian<uint16>(length_buffer_->data(),
|
| - query_->io_buffer()->size());
|
| + uint16 query_size = static_cast<uint16>(query_->io_buffer()->size());
|
| + if (static_cast<int>(query_size) != query_->io_buffer()->size())
|
| + return ERR_FAILED;
|
| + base::WriteBigEndian<uint16>(length_buffer_->data(), query_size);
|
| buffer_ =
|
| new DrainableIOBuffer(length_buffer_.get(), length_buffer_->size());
|
| next_state_ = STATE_SEND_LENGTH;
|
|
|