| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/nacl/loader/nacl_ipc_adapter.h" | 5 #include "components/nacl/loader/nacl_ipc_adapter.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 current_message_len = input_data_len; | 379 current_message_len = input_data_len; |
| 380 did_append_input_data = false; | 380 did_append_input_data = false; |
| 381 } else { | 381 } else { |
| 382 // We've already accumulated some data, accumulate this new data and | 382 // We've already accumulated some data, accumulate this new data and |
| 383 // point to the beginning of the buffer. | 383 // point to the beginning of the buffer. |
| 384 | 384 |
| 385 // Make sure our accumulated message size doesn't overflow our max. Since | 385 // Make sure our accumulated message size doesn't overflow our max. Since |
| 386 // we know that data_len < max size (checked above) and our current | 386 // we know that data_len < max size (checked above) and our current |
| 387 // accumulated value is also < max size, we just need to make sure that | 387 // accumulated value is also < max size, we just need to make sure that |
| 388 // 2x max size can never overflow. | 388 // 2x max size can never overflow. |
| 389 COMPILE_ASSERT(IPC::Channel::kMaximumMessageSize < (UINT_MAX / 2), | 389 static_assert(IPC::Channel::kMaximumMessageSize < (UINT_MAX / 2), |
| 390 MaximumMessageSizeWillOverflow); | 390 "kMaximumMessageSize is too large, and may overflow"); |
| 391 size_t new_size = locked_data_.to_be_sent_.size() + input_data_len; | 391 size_t new_size = locked_data_.to_be_sent_.size() + input_data_len; |
| 392 if (new_size > IPC::Channel::kMaximumMessageSize) { | 392 if (new_size > IPC::Channel::kMaximumMessageSize) { |
| 393 ClearToBeSent(); | 393 ClearToBeSent(); |
| 394 return -1; | 394 return -1; |
| 395 } | 395 } |
| 396 | 396 |
| 397 locked_data_.to_be_sent_.append(input_data, input_data_len); | 397 locked_data_.to_be_sent_.append(input_data, input_data_len); |
| 398 current_message = &locked_data_.to_be_sent_[0]; | 398 current_message = &locked_data_.to_be_sent_[0]; |
| 399 current_message_len = locked_data_.to_be_sent_.size(); | 399 current_message_len = locked_data_.to_be_sent_.size(); |
| 400 did_append_input_data = true; | 400 did_append_input_data = true; |
| (...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 header.flags = msg.flags(); | 826 header.flags = msg.flags(); |
| 827 header.num_fds = static_cast<uint16>(rewritten_msg->desc_count()); | 827 header.num_fds = static_cast<uint16>(rewritten_msg->desc_count()); |
| 828 | 828 |
| 829 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); | 829 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); |
| 830 locked_data_.to_be_received_.push(rewritten_msg); | 830 locked_data_.to_be_received_.push(rewritten_msg); |
| 831 } | 831 } |
| 832 | 832 |
| 833 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { | 833 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { |
| 834 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); | 834 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); |
| 835 } | 835 } |
| OLD | NEW |