Update LegacyTypeTracker state before sending connect broadcasts.
Currently, LegacyTypeTracker sends out connected broadcasts before updating its internal lists of networks. This creates a race condition where an app can query LegacyTypeTracker state (e.g., via getActiveNetworkInfo) as soon as it gets the broadcast, and get information that has not been updated. Bug: 17540101 Change-Id: Iefd6d5e9fd0b427c5872166208831f70fcef8b6f
This commit is contained in:
@@ -516,11 +516,13 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
return;
|
||||
}
|
||||
|
||||
if (list.isEmpty() || isDefaultNetwork(nai)) {
|
||||
list.add(nai);
|
||||
|
||||
// Send a broadcast if this is the first network of its type or if it's the default.
|
||||
if (list.size() == 1 || isDefaultNetwork(nai)) {
|
||||
maybeLogBroadcast(nai, true, type);
|
||||
sendLegacyNetworkBroadcast(nai, true, type);
|
||||
}
|
||||
list.add(nai);
|
||||
}
|
||||
|
||||
/** Removes the given network from the specified legacy type list. */
|
||||
|
||||
Reference in New Issue
Block a user