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
diff --git a/BandwidthController.cpp b/BandwidthController.cpp
index debb005..26a2739 100644
--- a/BandwidthController.cpp
+++ b/BandwidthController.cpp
@@ -413,11 +413,11 @@
switch (appOp) {
case SpecialAppOpAdd:
op = IptOpInsert;
- failLogTemplate = "Failed to add app uid %d to %s.";
+ failLogTemplate = "Failed to add app uid %s(%d) to %s.";
break;
case SpecialAppOpRemove:
op = IptOpDelete;
- failLogTemplate = "Failed to delete app uid %d from %s box.";
+ failLogTemplate = "Failed to delete app uid %s(%d) from %s box.";
break;
default:
ALOGE("Unexpected app Op %d", appOp);
@@ -425,9 +425,10 @@
}
for (uidNum = 0; uidNum < numUids; uidNum++) {
- appUids[uidNum] = atol(appStrUids[uidNum]);
- if (appUids[uidNum] == 0) {
- ALOGE(failLogTemplate, appUids[uidNum], chain);
+ char *end;
+ appUids[uidNum] = strtoul(appStrUids[uidNum], &end, 0);
+ if (*end || !*appStrUids[uidNum]) {
+ ALOGE(failLogTemplate, appStrUids[uidNum], appUids[uidNum], chain);
goto fail_parse;
}
}
@@ -456,7 +457,7 @@
iptCmd = makeIptablesSpecialAppCmd(op, uid, chain);
if (runIpxtablesCmd(iptCmd.c_str(), jumpHandling)) {
- ALOGE(failLogTemplate, uid, chain);
+ ALOGE(failLogTemplate, appStrUids[uidNum], uid, chain);
goto fail_with_uidNum;
}
}