Make it a bit more standards friendly
authorRobert Swiecki <swiecki@google.com>
Thu, 21 Jul 2016 13:48:47 +0000 (15:48 +0200)
committerRobert Swiecki <swiecki@google.com>
Thu, 21 Jul 2016 13:48:47 +0000 (15:48 +0200)
cmdline.c
common.h
contain.c
mount.c
net.c
pid.c
subproc.c

index 7741920448fde06d599e2c12440736f29fa6ec6c..4b6451e6c3b2bc1635b417e1ba4cc7210d758f27 100644 (file)
--- 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);
        }
index de6364e3b6ee1cfb15aeea612c10aaf898c00178..84d9607e624da9385fb2d0ff1f1bab5258eb7396 100644 (file)
--- 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;
index be0e4dc0cd3e95c8225e453036588191e81ac858..5582994decb0dfc4e1445c1aae8f0f5677644694 100644 (file)
--- 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 6a6efea87cdf05bf05c446f9648655633501ed4c..892f5669f87792d4587da7afdd4681dd36c3871c 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -23,6 +23,7 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#include <linux/sched.h>
 #include <sched.h>
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/net.c b/net.c
index 98c4b48018be71938b05caf4297a3af56a6481a6..652363110d01d0c337732840892e8e7f4eebefa8 100644 (file)
--- a/net.c
+++ b/net.c
@@ -45,6 +45,8 @@
 
 #define IFACE_NAME "vs"
 
+extern char **environ;
+
 #if defined(NSJAIL_NL3_WITH_MACVLAN)
 #include <netlink/route/link.h>
 #include <netlink/route/link/macvlan.h>
diff --git a/pid.c b/pid.c
index cdfa4aab7762122022e184be6e37962287f4858c..b145b810546e0c4cf96cf43675f60b3763e69264 100644 (file)
--- a/pid.c
+++ b/pid.c
@@ -21,6 +21,7 @@
 
 #include "pid.h"
 
+#include <linux/sched.h>
 #include <sched.h>
 #include <signal.h>
 #include <sys/prctl.h>
index 7f298db0ff35ac263f37466c758def4ba5adaf0d..b98b0b9008c0e97b31a9041f4b80d101f990fac7 100644 (file)
--- a/subproc.c
+++ b/subproc.c
@@ -24,6 +24,7 @@
 #include <arpa/inet.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <linux/sched.h>
 #include <netinet/in.h>
 #include <sched.h>
 #include <signal.h>