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

Unified Diff: runtime/bin/socket_patch.dart

Issue 2361373003: Throw an ArgumentError if the port is out of range (Closed)
Patch Set: Address comments Created 4 years, 3 months 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
« no previous file with comments | « no previous file | tests/standalone/io/socket_invalid_arguments_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/socket_patch.dart
diff --git a/runtime/bin/socket_patch.dart b/runtime/bin/socket_patch.dart
index 0244e791c190d4d50a114dd4f7e335145516bb6f..48508274a6ef2ceb1dfe1b62e5e20ecee65211e4 100644
--- a/runtime/bin/socket_patch.dart
+++ b/runtime/bin/socket_patch.dart
@@ -70,6 +70,12 @@
static bool _listSupported() native "NetworkInterface_ListSupported";
}
+void _throwOnBadPort(int port) {
+ if ((port == null) || (port < 0) || (port > 0xFFFF)) {
+ throw new ArgumentError("Invalid port $port");
+ }
+}
+
class _InternetAddress implements InternetAddress {
static const int _ADDRESS_LOOPBACK_IP_V4 = 0;
static const int _ADDRESS_LOOPBACK_IP_V6 = 1;
@@ -387,6 +393,7 @@ class _NativeSocket extends _NativeSocketNativeWrapper with _ServiceObject {
}
static Future<_NativeSocket> connect(host, int port, sourceAddress) {
+ _throwOnBadPort(port);
if (sourceAddress != null && sourceAddress is! _InternetAddress) {
if (sourceAddress is String) {
sourceAddress = new InternetAddress(sourceAddress);
@@ -488,6 +495,7 @@ class _NativeSocket extends _NativeSocketNativeWrapper with _ServiceObject {
int backlog,
bool v6Only,
bool shared) {
+ _throwOnBadPort(port);
return new Future.value(host)
.then((host) {
if (host is _InternetAddress) return host;
@@ -526,6 +534,7 @@ class _NativeSocket extends _NativeSocketNativeWrapper with _ServiceObject {
static Future<_NativeSocket> bindDatagram(
host, int port, bool reuseAddress) {
+ _throwOnBadPort(port);
return new Future.value(host)
.then((host) {
if (host is _InternetAddress) return host;
@@ -676,6 +685,7 @@ class _NativeSocket extends _NativeSocketNativeWrapper with _ServiceObject {
int send(List<int> buffer, int offset, int bytes,
InternetAddress address, int port) {
+ _throwOnBadPort(port);
if (isClosing || isClosed) return 0;
_BufferAndStart bufferAndStart =
_ensureFastAndSerializableByteData(
@@ -1116,8 +1126,7 @@ class _RawServerSocket extends Stream<RawSocket>
int backlog,
bool v6Only,
bool shared) {
- if (port < 0 || port > 0xFFFF)
- throw new ArgumentError("Invalid port $port");
+ _throwOnBadPort(port);
if (backlog < 0) throw new ArgumentError("Invalid backlog $backlog");
return _NativeSocket.bind(address, port, backlog, v6Only, shared)
.then((socket) => new _RawServerSocket(socket, v6Only));
@@ -1762,8 +1771,7 @@ class _RawDatagramSocket extends Stream implements RawDatagramSocket {
static Future<RawDatagramSocket> bind(
host, int port, bool reuseAddress) {
- if (port < 0 || port > 0xffff)
- throw new ArgumentError("Invalid port $port");
+ _throwOnBadPort(port);
return _NativeSocket.bindDatagram(host, port, reuseAddress)
.then((socket) => new _RawDatagramSocket(socket));
}
« no previous file with comments | « no previous file | tests/standalone/io/socket_invalid_arguments_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698