netd: fix argument interpretation bug

While working around the logwrap() issue, it was replaced with system()
which could lead to various commands getting misinterpreted.

We now use a system() equivalent that doesn't use "sh -c".

Bug:5758556
Change-Id: I2599b526ac34bcfca18d05261286d902d547efda
diff --git a/ThrottleController.cpp b/ThrottleController.cpp
index c7dfad8..1ae31b8 100644
--- a/ThrottleController.cpp
+++ b/ThrottleController.cpp
@@ -36,7 +36,7 @@
 
 static char TC_PATH[] = "/system/bin/tc";
 
-extern "C" int logwrap(int argc, const char **argv, int background);
+extern "C" int system_nosh(const char *command);
 extern "C" int ifc_init(void);
 extern "C" int ifc_up(const char *name);
 extern "C" int ifc_down(const char *name);
@@ -53,7 +53,7 @@
     }
 
     asprintf(&buffer, "%s %s", TC_PATH, cmd);
-    res = system(buffer);
+    res = system_nosh(buffer);
     free(buffer);
     return res;
 }