From: Artur Cygan Date: Mon, 6 Jul 2020 12:38:11 +0000 (+0200) Subject: Stringify CLI-passed paths X-Git-Tag: 3.0~4^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=74e88d92b4077911efd141eaffa20967373492aa;p=platform%2Fupstream%2Fnsjail.git Stringify CLI-passed paths --- diff --git a/user.cc b/user.cc index 1b5c874..dc2d151 100644 --- a/user.cc +++ b/user.cc @@ -43,12 +43,20 @@ #include "subproc.h" #include "util.h" -#ifndef NEWUIDMAP_PATH -#define NEWUIDMAP_PATH "/usr/bin/newuidmap" +#define STR_(x) #x +#define STR(x) STR_(x) + +constexpr char kNewUidPath[] = +#ifdef NEWUIDMAP_PATH + STR(NEWUIDMAP_PATH); +#else + "/usr/bin/newuidmap"; #endif - -#ifndef NEWGIDMAP_PATH -#define NEWGIDMAP_PATH "/usr/bin/newgidmap" +constexpr char kNewGidPath[] = +#ifdef NEWGIDMAP_PATH + STR(NEWGIDMAP_PATH); +#else + "/usr/bin/newgidmap"; #endif namespace user { @@ -169,11 +177,11 @@ static bool gidMapSelf(nsjconf_t* nsjconf, pid_t pid) { return true; } -/* Use NEWGIDMAP_PATH for writing the gid map */ +/* Use newgidmap for writing the gid map */ static bool gidMapExternal(nsjconf_t* nsjconf, pid_t pid) { bool use = false; - std::vector argv = {NEWGIDMAP_PATH, std::to_string(pid)}; + std::vector argv = {kNewGidPath, std::to_string(pid)}; for (const auto& gid : nsjconf->gids) { if (!gid.is_newidmap) { continue; @@ -188,18 +196,18 @@ static bool gidMapExternal(nsjconf_t* nsjconf, pid_t pid) { return true; } if (subproc::systemExe(argv, environ) != 0) { - LOG_E("'%s' failed", NEWGIDMAP_PATH); + LOG_E("'%s' failed", kNewGidPath); return false; } return true; } -/* Use NEWUIDMAP_PATH for writing the uid map */ +/* Use newuidmap for writing the uid map */ static bool uidMapExternal(nsjconf_t* nsjconf, pid_t pid) { bool use = false; - std::vector argv = {NEWUIDMAP_PATH, std::to_string(pid)}; + std::vector argv = {kNewUidPath, std::to_string(pid)}; for (const auto& uid : nsjconf->uids) { if (!uid.is_newidmap) { continue; @@ -214,7 +222,7 @@ static bool uidMapExternal(nsjconf_t* nsjconf, pid_t pid) { return true; } if (subproc::systemExe(argv, environ) != 0) { - LOG_E("'%s' failed", NEWUIDMAP_PATH); + LOG_E("'%s' failed", kNewUidPath); return false; }