Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: extensions/browser/api/socket/socket_api.cc

Issue 717263003: Use uint16 for port numbers, extensions/ edition (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Self-review Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/api/socket/socket_api.cc
diff --git a/extensions/browser/api/socket/socket_api.cc b/extensions/browser/api/socket/socket_api.cc
index 509b060a1b20d6ae02e13d67491bede13f8aa318..f7a712d61161a7e84bb6cefb596a3ce9b3e20d8d 100644
--- a/extensions/browser/api/socket/socket_api.cc
+++ b/extensions/browser/api/socket/socket_api.cc
@@ -49,7 +49,7 @@ const char kMulticastSocketTypeError[] = "Only UDP socket supports multicast.";
const char kSecureSocketTypeError[] = "Only TCP sockets are supported for TLS.";
const char kSocketNotConnectedError[] = "Socket not connected";
const char kWildcardAddress[] = "*";
-const int kWildcardPort = 0;
+const uint16 kWildcardPort = 0;
SocketAsyncApiFunction::SocketAsyncApiFunction() {}
@@ -192,7 +192,10 @@ SocketConnectFunction::~SocketConnectFunction() {}
bool SocketConnectFunction::Prepare() {
EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &socket_id_));
EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &hostname_));
- EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(2, &port_));
+ int port;
+ EXTENSION_FUNCTION_VALIDATE(
+ args_->GetInteger(2, &port) && port >= 0 && port <= 65535);
Peter Kasting 2014/11/12 23:54:26 Maybe we should have had these checks already?
Jeffrey Yasskin 2014/11/17 07:00:33 Yes.
+ port_ = static_cast<uint16>(port);
return true;
}
@@ -278,7 +281,10 @@ void SocketDisconnectFunction::Work() {
bool SocketBindFunction::Prepare() {
EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &socket_id_));
EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &address_));
- EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(2, &port_));
+ int port;
+ EXTENSION_FUNCTION_VALIDATE(
+ args_->GetInteger(2, &port) && port >= 0 && port <= 65535);
+ port_ = static_cast<uint16>(port);
return true;
}
@@ -480,7 +486,7 @@ void SocketRecvFromFunction::AsyncWorkStart() {
void SocketRecvFromFunction::OnCompleted(int bytes_read,
scoped_refptr<net::IOBuffer> io_buffer,
const std::string& address,
- int port) {
+ uint16 port) {
base::DictionaryValue* result = new base::DictionaryValue();
result->SetInteger(kResultCodeKey, bytes_read);
if (bytes_read > 0) {
@@ -508,7 +514,10 @@ bool SocketSendToFunction::Prepare() {
base::BinaryValue* data = NULL;
EXTENSION_FUNCTION_VALIDATE(args_->GetBinary(1, &data));
EXTENSION_FUNCTION_VALIDATE(args_->GetString(2, &hostname_));
- EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(3, &port_));
+ int port;
+ EXTENSION_FUNCTION_VALIDATE(
+ args_->GetInteger(3, &port) && port >= 0 && port <= 65535);
+ port_ = static_cast<uint16>(port);
io_buffer_size_ = data->GetSize();
io_buffer_ = new net::WrappedIOBuffer(data->GetBuffer());

Powered by Google App Engine
This is Rietveld 408576698