diff options
| author | 2019-01-21 20:57:05 +0900 | |
|---|---|---|
| committer | 2019-01-21 23:21:40 +0900 | |
| commit | 800e843862cfaac46dd1cc3b6e09aad1de911942 (patch) | |
| tree | 08dcf5dcab2ae741568de9d789b89d3311c66bae | |
| parent | 69b967f5d0687b043a66ed9a8343ad447bd594aa (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.java | 11 |
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; } |