config: make argv static to avoid using heap
authorRobert Swiecki <robert@swiecki.net>
Fri, 6 Oct 2017 23:54:36 +0000 (01:54 +0200)
committerRobert Swiecki <robert@swiecki.net>
Fri, 6 Oct 2017 23:54:36 +0000 (01:54 +0200)
config.cc

index d49cfdd79194b5c4be3c841fd4ae91f345948e4c..78f57488c55c2cfa99cbbb553d3254a77cbe7489 100644 (file)
--- a/config.cc
+++ b/config.cc
@@ -271,18 +271,18 @@ static bool configParseInternal(struct nsjconf_t* nsjconf,
     nsjconf->iface_vs_gw = njc.macvlan_vs_gw().c_str();
 
     if (njc.has_exec_bin()) {
-                       std::vector<const char*>* argv = new std::vector<const char*>;
+        static std::vector<const char*> argv;
         if (njc.exec_bin().has_arg0()) {
-            argv->push_back(njc.exec_bin().arg0().c_str());
+            argv.push_back(njc.exec_bin().arg0().c_str());
         } else {
-            argv->push_back(njc.exec_bin().path().c_str());
+            argv.push_back(njc.exec_bin().path().c_str());
         }
         for (ssize_t i = 0; i < njc.exec_bin().arg().size(); i++) {
-            argv->push_back(njc.exec_bin().arg(i).c_str());
+            argv.push_back(njc.exec_bin().arg(i).c_str());
         }
-        argv->push_back(nullptr);
+        argv.push_back(nullptr);
         nsjconf->exec_file = DUP_IF_SET(njc.exec_bin(), path);
-        nsjconf->argv = argv->data();
+        nsjconf->argv = argv.data();
     }
 
     return true;