diff --git a/cmdline.c b/cmdline.c index 7741920..4b6451e 100644 --- a/cmdline.c +++ b/cmdline.c @@ -137,7 +137,7 @@ static bool cmdlineIsANumber(const char *s) return true; } -rlim_t cmdlineParseRLimit(int res, const char *optarg, unsigned long mul) +__rlim64_t cmdlineParseRLimit(int res, const char *optarg, unsigned long mul) { struct rlimit64 cur; if (prlimit64(0, res, NULL, &cur) == -1) { @@ -153,7 +153,7 @@ rlim_t cmdlineParseRLimit(int res, const char *optarg, unsigned long mul) LOG_F("RLIMIT %d needs a numeric or 'max'/'def' value ('%s' provided)", res, optarg); } - rlim64_t val = strtoull(optarg, NULL, 0) * mul; + __rlim64_t val = strtoull(optarg, NULL, 0) * mul; if (val == ULLONG_MAX && errno != 0) { PLOG_F("strtoul('%s', 0)", optarg); } diff --git a/common.h b/common.h index de6364e..84d9607 100644 --- a/common.h +++ b/common.h @@ -98,13 +98,13 @@ struct nsjconf_t { bool verbose; bool keep_env; bool keep_caps; - rlim64_t rl_as; - rlim64_t rl_core; - rlim64_t rl_cpu; - rlim64_t rl_fsize; - rlim64_t rl_nofile; - rlim64_t rl_nproc; - rlim64_t rl_stack; + __rlim64_t rl_as; + __rlim64_t rl_core; + __rlim64_t rl_cpu; + __rlim64_t rl_fsize; + __rlim64_t rl_nofile; + __rlim64_t rl_nproc; + __rlim64_t rl_stack; unsigned long personality; bool clone_newnet; bool clone_newuser; diff --git a/contain.c b/contain.c index be0e4dc..5582994 100644 --- a/contain.c +++ b/contain.c @@ -79,11 +79,11 @@ static bool containDropPrivs(struct nsjconf_t *nsjconf) if (setgroups(0, group_list) == -1) { PLOG_D("setgroups(NULL) failed"); } - if (setresgid(nsjconf->inside_gid, nsjconf->inside_gid, nsjconf->inside_gid) == -1) { + if (syscall(__NR_setresgid, nsjconf->inside_gid, nsjconf->inside_gid, nsjconf->inside_gid) == -1) { PLOG_E("setresgid(%u)", nsjconf->inside_gid); return false; } - if (setresuid(nsjconf->inside_uid, nsjconf->inside_uid, nsjconf->inside_uid) == -1) { + if (syscall(__NR_setresuid, nsjconf->inside_uid, nsjconf->inside_uid, nsjconf->inside_uid) == -1) { PLOG_E("setresuid(%u)", nsjconf->inside_uid); return false; } diff --git a/mount.c b/mount.c index 6a6efea..892f566 100644 --- a/mount.c +++ b/mount.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include diff --git a/net.c b/net.c index 98c4b48..6523631 100644 --- a/net.c +++ b/net.c @@ -45,6 +45,8 @@ #define IFACE_NAME "vs" +extern char **environ; + #if defined(NSJAIL_NL3_WITH_MACVLAN) #include #include diff --git a/pid.c b/pid.c index cdfa4aa..b145b81 100644 --- a/pid.c +++ b/pid.c @@ -21,6 +21,7 @@ #include "pid.h" +#include #include #include #include diff --git a/subproc.c b/subproc.c index 7f298db..b98b0b9 100644 --- a/subproc.c +++ b/subproc.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include