Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd5a31eb authored by Maciej Żenczykowski's avatar Maciej Żenczykowski Committed by Gerrit Code Review
Browse files

Merge "Fix system_server crash while iterating CookieTagMap"

parents b27a57a7 77bb1cef
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1875,7 +1875,13 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
    private void deleteKernelTagData(int uid) {
        try {
            mCookieTagMap.forEach((key, value) -> {
                if (value.uid == uid) {
                // If SkDestroyListener deletes the socket tag while this code is running,
                // forEach will either restart iteration from the beginning or return null,
                // depending on when the deletion happens.
                // If it returns null, continue iteration to delete the data and in fact it would
                // just iterate from first key because BpfMap#getNextKey would return first key
                // if the current key is not exist.
                if (value != null && value.uid == uid) {
                    try {
                        mCookieTagMap.deleteEntry(key);
                    } catch (ErrnoException e) {