TAILQ_INIT(&nsjconf->pids);
TAILQ_INIT(&nsjconf->mountpts);
- TAILQ_INIT(&nsjconf->envs);
TAILQ_INIT(&nsjconf->uids);
TAILQ_INIT(&nsjconf->gids);
case 0x0607:
nsjconf->use_execveat = true;
break;
- case 'E': {
- struct charptr_t* p = reinterpret_cast<struct charptr_t*>(
- util::memAlloc(sizeof(struct charptr_t)));
- p->val = optarg;
- TAILQ_INSERT_TAIL(&nsjconf->envs, p, pointers);
- } break;
+ case 'E':
+ nsjconf->envs.push_back(optarg);
+ break;
case 'u': {
char* i_id = optarg;
char* o_id = cmdlineSplitStrByColon(i_id);
nsjconf->keep_env = njc.keep_env();
for (ssize_t i = 0; i < njc.envar_size(); i++) {
- struct charptr_t* p =
- reinterpret_cast<charptr_t*>(util::memAlloc(sizeof(struct charptr_t)));
- p->val = njc.envar(i).c_str();
- TAILQ_INSERT_TAIL(&nsjconf->envs, p, pointers);
+ nsjconf->envs.push_back(njc.envar(i));
}
nsjconf->keep_caps = njc.keep_caps();
for (ssize_t i = 0; i < njc.cap_size(); i++) {
- struct ints_t* f =
- reinterpret_cast<struct ints_t*>(util::memAlloc(sizeof(struct ints_t)));
int cap = caps::nameToVal(njc.cap(i).c_str());
if (cap == -1) {
return false;
#include <time.h>
#include <unistd.h>
+#include <string>
#include <vector>
#if !defined(TEMP_FAILURE_RETRY)
pointers;
};
-struct ints_t {
- int val;
- TAILQ_ENTRY(ints_t)
- pointers;
-};
-
enum ns_mode_t {
MODE_LISTEN_TCP = 0,
MODE_STANDALONE_ONCE,
MODE_STANDALONE_RERUN
};
-struct charptr_t {
- const char* val;
- TAILQ_ENTRY(charptr_t)
- pointers;
-};
-
enum llevel_t {
DEBUG = 0,
INFO,
uids;
TAILQ_HEAD(gdmaplist, idmap_t)
gids;
- TAILQ_HEAD(envlist, charptr_t)
- envs;
TAILQ_HEAD(pidslist, pids_t)
pids;
TAILQ_HEAD(mountptslist, mounts_t)
mountpts;
+ std::vector<std::string> envs;
std::vector<int> openfds;
std::vector<int> caps;
};
if (nsjconf->keep_env == false) {
clearenv();
}
- struct charptr_t* p;
- TAILQ_FOREACH(p, &nsjconf->envs, pointers) { putenv((char*)p->val); }
+ for (const auto& env : nsjconf->envs) {
+ putenv(const_cast<char*>(env.c_str()));
+ }
char cs_addr[64];
net::connToText(fd_in, true /* remote */, cs_addr, sizeof(cs_addr), NULL);