Support reading output from IptablesRestoreController.
Add the ability to IptablesRestoreController to return the output
of a command. This is useful to run commands that list chains or
return counters through the ip[6]tables-restore.
Also enable unsigned-integer-overflow sanitization the unit tests
because their behaviour should be representative of actual code.
Having address sanitization enabled would have saved a fair
amount of time debugging an on-device abort() that did not affect
the tests.
Test: new unit test passes
Bug: 32323979
Change-Id: I70726ebbade0cb792aba38787c57378df177f2d8
diff --git a/server/NetdConstants.cpp b/server/NetdConstants.cpp
index f8a0d36..ff3fc2c 100644
--- a/server/NetdConstants.cpp
+++ b/server/NetdConstants.cpp
@@ -119,8 +119,13 @@
return res;
}
+int execIptablesRestoreWithOutput(IptablesTarget target, const std::string& commands,
+ std::string *output) {
+ return android::net::gCtls->iptablesRestoreCtrl.execute(target, commands, output);
+}
+
int execIptablesRestore(IptablesTarget target, const std::string& commands) {
- return android::net::gCtls->iptablesRestoreCtrl.execute(target, commands);
+ return execIptablesRestoreWithOutput(target, commands, nullptr);
}
/*