summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Remi NGUYEN VAN <reminv@google.com> 2019-01-21 20:57:05 +0900
committer Remi NGUYEN VAN <reminv@google.com> 2019-01-21 23:21:40 +0900
commit800e843862cfaac46dd1cc3b6e09aad1de911942 (patch)
tree08dcf5dcab2ae741568de9d789b89d3311c66bae
parent69b967f5d0687b043a66ed9a8343ad447bd594aa (diff)
Acquire lock to write NetworkStackConnector
As Java reference writes are atomic, the previous code should not have issues, but since mConnector is marked @GuardedBy it could trigger static analysis. Test: m Change-Id: I5a6174a4f32c349e593d0a16d58293d608a487c7
-rw-r--r--core/java/android/net/NetworkStack.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/net/NetworkStack.java b/core/java/android/net/NetworkStack.java
index 601ee0f54117..af043eeccde2 100644
--- a/core/java/android/net/NetworkStack.java
+++ b/core/java/android/net/NetworkStack.java
@@ -200,9 +200,7 @@ public class NetworkStack {
return null;
}
- synchronized (mPendingNetStackRequests) {
- return INetworkStackConnector.Stub.asInterface(connector);
- }
+ return INetworkStackConnector.Stub.asInterface(connector);
}
private void requestConnector(@NonNull NetworkStackCallback request) {
@@ -217,8 +215,11 @@ public class NetworkStack {
if (!mNetworkStackStartRequested) {
// The network stack is not being started in this process, e.g. this process is not
// the system server. Get a remote connector registered by the system server.
- mConnector = getRemoteConnector();
- request.onNetworkStackConnected(mConnector);
+ final INetworkStackConnector connector = getRemoteConnector();
+ synchronized (mPendingNetStackRequests) {
+ mConnector = connector;
+ }
+ request.onNetworkStackConnected(connector);
return;
}