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;
|
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);
|
maybeLogBroadcast(nai, true, type);
|
||||||
sendLegacyNetworkBroadcast(nai, true, type);
|
sendLegacyNetworkBroadcast(nai, true, type);
|
||||||
}
|
}
|
||||||
list.add(nai);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Removes the given network from the specified legacy type list. */
|
/** Removes the given network from the specified legacy type list. */
|
||||||
|
|||||||
Reference in New Issue
Block a user