NetUtilsWrapper: don't execute non-whitelisted commands.

Bug: 36463595
Test: marlin builds, boots
Test: wifi calling works
Change-Id: Ic26adf95544ec4465d1182bb72c87fe4c9b05378
diff --git a/netutils_wrappers/NetUtilsWrapper-1.0.cpp b/netutils_wrappers/NetUtilsWrapper-1.0.cpp
index 36b65fa..ba0bf98 100644
--- a/netutils_wrappers/NetUtilsWrapper-1.0.cpp
+++ b/netutils_wrappers/NetUtilsWrapper-1.0.cpp
@@ -81,6 +81,7 @@
 };
 
 bool checkExpectedCommand(int argc, char **argv) {
+    static bool loggedError = false;
     std::vector<const char*> allArgs(argc);
     for (int i = 0; i < argc; i++) {
         allArgs[i] = argv[i];
@@ -92,7 +93,11 @@
             return true;
         }
     }
-    ALOGI("Unexpected command: %s", fullCmd.c_str());
+    if (!loggedError) {
+        ALOGI("Unexpected command: %s", fullCmd.c_str());
+        fprintf(stderr, LOG_TAG ": Unexpected command: %s", fullCmd.c_str());
+        loggedError = true;
+    }
     return false;
 }
 
@@ -118,12 +123,12 @@
                 exit(EXIT_FAILURE);
             }
             argv[0] = cmd;
-            checkExpectedCommand(argc, argv);
-            execv(cmd, argv);
+            if (checkExpectedCommand(argc, argv)) {
+                execv(cmd, argv);
+            }
         }
     }
 
-    // must never reach here
-    fprintf(stderr, "(%s:%d) is not a supported net util\n", progname, errno);
+    // Invalid command. Reject and fail.
     exit(EXIT_FAILURE);
 }