cmdline: correctly assign argv to nsjconf->argv

This commit is contained in:
Robert Swiecki 2018-02-12 17:31:45 +01:00
parent 2545fcd3a9
commit f8d0e5fda1
3 changed files with 12 additions and 12 deletions

View File

@ -363,8 +363,8 @@ std::unique_ptr<nsjconf_t> parseArgs(int argc, char* argv[]) {
nsjconf->iface_vs_gw = "0.0.0.0"; nsjconf->iface_vs_gw = "0.0.0.0";
nsjconf->orig_uid = getuid(); nsjconf->orig_uid = getuid();
nsjconf->num_cpus = sysconf(_SC_NPROCESSORS_ONLN); nsjconf->num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
nsjconf->seccomp_fprog.filter = NULL; nsjconf->seccomp_fprog.filter = NULL;
nsjconf->seccomp_fprog.len = 0; nsjconf->seccomp_fprog.len = 0;
nsjconf->openfds.push_back(STDIN_FILENO); nsjconf->openfds.push_back(STDIN_FILENO);
nsjconf->openfds.push_back(STDOUT_FILENO); nsjconf->openfds.push_back(STDOUT_FILENO);
@ -792,8 +792,8 @@ std::unique_ptr<nsjconf_t> parseArgs(int argc, char* argv[]) {
nsjconf->gids.push_back(gid); nsjconf->gids.push_back(gid);
} }
for (size_t i = optind; optind < argc; i++) { for (int i = optind; i < argc; i++) {
nsjconf->argv[i] = argv[optind]; nsjconf->argv.push_back(argv[i]);
} }
if (nsjconf->argv.empty()) { if (nsjconf->argv.empty()) {
cmdlineUsage(argv[0]); cmdlineUsage(argv[0]);

View File

@ -179,12 +179,12 @@ int main(int argc, char* argv[]) {
LOG_F("Couldn't prepare sandboxing policy"); LOG_F("Couldn't prepare sandboxing policy");
} }
int ret = 0; int ret = 0;
if (nsjconf->mode == MODE_LISTEN_TCP) { if (nsjconf->mode == MODE_LISTEN_TCP) {
nsjailListenMode(nsjconf.get()); nsjailListenMode(nsjconf.get());
} else { } else {
ret = nsjailStandaloneMode(nsjconf.get()); ret = nsjailStandaloneMode(nsjconf.get());
} }
sandbox::closePolicy(nsjconf.get()); sandbox::closePolicy(nsjconf.get());
return ret; return ret;
} }

View File

@ -96,12 +96,12 @@ bool preparePolicy(nsjconf_t* nsjconf) {
} }
void closePolicy(nsjconf_t* nsjconf) { void closePolicy(nsjconf_t* nsjconf) {
if (!nsjconf->seccomp_fprog.filter) { if (!nsjconf->seccomp_fprog.filter) {
return; return;
} }
free(nsjconf->seccomp_fprog.filter); free(nsjconf->seccomp_fprog.filter);
nsjconf->seccomp_fprog.filter = nullptr; nsjconf->seccomp_fprog.filter = nullptr;
nsjconf->seccomp_fprog.len = 0; nsjconf->seccomp_fprog.len = 0;
} }
} // namespace sandbox } // namespace sandbox