Fix wrong netId handle in ResNSendHandler
This error would cause a query with bypass private network bit only can go on default network. (Basically, we could treat this problem as using non-exists netId to getNetworkContext for dns part.) Also could cause wrong app_mark if input netId == NETID_UNSET. Error case: 1. wrong app_netId/mark case: input netid = NETID_UNSET | 0x80000000 actual: netid = 0x80000000 app_mark = 0xF0000 expect: (assume getNetworkForConnectLocked(uid) = 30 ) netid = 30 app_mark = 0xC001E 2. wrong dns_netId/mark case: input netid = any | 0x80000000 actual: check fail in checkUserNetworkAccessLocked(), so return defaultNetwork as netNetId. (assume defaultNetId = 30) dns_netid = 30 dns_mark = 0xE001E expect: (assume no vpn, defaultNetId = 30) (If input netId == NETID_UNSET) dns_netid = 30 dns_mark = 0xF001E (If input netId != NETID_UNSET, assume netId = 31 and we have a network 31) dns_netid = 31 dns_mark = 0xF001F Test will be added in aosp/695922 after we could check if netId is valid from NetworkController. Bug: 132670008 Test: system/netd/tests/runtests.sh Merged-In: I0b315dfe0644b3c3a44e4e79ba1855ccd0442c3c (cherry picked from commit 25215e90) Change-Id: I7b7d4cf24c1c4ce461291fa58c68cc1478b0b951
Loading