Commit af476f7b authored by JP Abgrall's avatar JP Abgrall
Browse files

BandwidthController: allow UID 0 as a "special uid"

The happy box needs to be able to let UID 0 (dhcp, ...) pass through.

Bug: 6212480
Change-Id: I9867b7db4e5ad71cfb1170659d2d6a14ca9590be
parent e4788739
...@@ -413,11 +413,11 @@ int BandwidthController::manipulateSpecialApps(int numUids, char *appStrUids[], ...@@ -413,11 +413,11 @@ int BandwidthController::manipulateSpecialApps(int numUids, char *appStrUids[],
switch (appOp) { switch (appOp) {
case SpecialAppOpAdd: case SpecialAppOpAdd:
op = IptOpInsert; op = IptOpInsert;
failLogTemplate = "Failed to add app uid %d to %s."; failLogTemplate = "Failed to add app uid %s(%d) to %s.";
break; break;
case SpecialAppOpRemove: case SpecialAppOpRemove:
op = IptOpDelete; op = IptOpDelete;
failLogTemplate = "Failed to delete app uid %d from %s box."; failLogTemplate = "Failed to delete app uid %s(%d) from %s box.";
break; break;
default: default:
ALOGE("Unexpected app Op %d", appOp); ALOGE("Unexpected app Op %d", appOp);
...@@ -425,9 +425,10 @@ int BandwidthController::manipulateSpecialApps(int numUids, char *appStrUids[], ...@@ -425,9 +425,10 @@ int BandwidthController::manipulateSpecialApps(int numUids, char *appStrUids[],
} }
for (uidNum = 0; uidNum < numUids; uidNum++) { for (uidNum = 0; uidNum < numUids; uidNum++) {
appUids[uidNum] = atol(appStrUids[uidNum]); char *end;
if (appUids[uidNum] == 0) { appUids[uidNum] = strtoul(appStrUids[uidNum], &end, 0);
ALOGE(failLogTemplate, appUids[uidNum], chain); if (*end || !*appStrUids[uidNum]) {
ALOGE(failLogTemplate, appStrUids[uidNum], appUids[uidNum], chain);
goto fail_parse; goto fail_parse;
} }
} }
...@@ -456,7 +457,7 @@ int BandwidthController::manipulateSpecialApps(int numUids, char *appStrUids[], ...@@ -456,7 +457,7 @@ int BandwidthController::manipulateSpecialApps(int numUids, char *appStrUids[],
iptCmd = makeIptablesSpecialAppCmd(op, uid, chain); iptCmd = makeIptablesSpecialAppCmd(op, uid, chain);
if (runIpxtablesCmd(iptCmd.c_str(), jumpHandling)) { if (runIpxtablesCmd(iptCmd.c_str(), jumpHandling)) {
ALOGE(failLogTemplate, uid, chain); ALOGE(failLogTemplate, appStrUids[uidNum], uid, chain);
goto fail_with_uidNum; goto fail_with_uidNum;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment