summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ajay Panicker <apanicke@google.com> 2017-01-05 15:38:52 -0800
committer Ajay Panicker <apanicke@google.com> 2017-01-05 23:52:30 +0000
commit7a8c36aa4e6a1b5e48f0ee5a787f10bcfece7587 (patch)
tree6e2ab820e4882f7ff3ec209b107d58e3c13f369f
parent1fe99a819cba0437a520b0786625cff32702265f (diff)
Prevent LocalSocket from creating an fd if fd is already there
Any LocalSocket created with a FileDescriptor will throw IOExceptions when performing most opperations due to the fact that the LocalSocket tries to create an implementation but fails since there is a FileDescriptor already set. Bug: 34095140 Test: Setup using tap&go Change-Id: Ie8f50def6156c16617697d939d6c0ab570281642
-rw-r--r--core/java/android/net/LocalSocket.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/net/LocalSocket.java b/core/java/android/net/LocalSocket.java
index 3f8d9d3b6723..d9ad74beb016 100644
--- a/core/java/android/net/LocalSocket.java
+++ b/core/java/android/net/LocalSocket.java
@@ -73,6 +73,7 @@ public class LocalSocket implements Closeable {
this(new LocalSocketImpl(fd), SOCKET_UNKNOWN);
isBound = true;
isConnected = true;
+ implCreated = true;
}
private LocalSocket(LocalSocketImpl impl, int sockType) {
@@ -223,11 +224,11 @@ public class LocalSocket implements Closeable {
implCreateIfNeeded();
impl.shutdownOutput();
}
-
+
public void setReceiveBufferSize(int size) throws IOException {
impl.setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size));
}
-
+
public int getReceiveBufferSize() throws IOException {
return ((Integer) impl.getOption(SocketOptions.SO_RCVBUF)).intValue();
}
@@ -235,7 +236,7 @@ public class LocalSocket implements Closeable {
public void setSoTimeout(int n) throws IOException {
impl.setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(n));
}
-
+
public int getSoTimeout() throws IOException {
return ((Integer) impl.getOption(SocketOptions.SO_TIMEOUT)).intValue();
}
@@ -243,7 +244,7 @@ public class LocalSocket implements Closeable {
public void setSendBufferSize(int n) throws IOException {
impl.setOption(SocketOptions.SO_SNDBUF, Integer.valueOf(n));
}
-
+
public int getSendBufferSize() throws IOException {
return ((Integer) impl.getOption(SocketOptions.SO_SNDBUF)).intValue();
}
@@ -328,5 +329,5 @@ public class LocalSocket implements Closeable {
*/
public FileDescriptor getFileDescriptor() {
return impl.getFileDescriptor();
- }
+ }
}