summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2022-07-17 13:11:36 +0200
committerChristian Marangi <ansuelsmth@gmail.com>2022-07-17 13:14:00 +0200
commitef5d3e36e8b23ee2e1989c22717b21649dc9a388 (patch)
treeb12e3a292dd6727c4102eafba700480db659a1c8
parent8e4a956604d65b2ca756b57114455e034de6b3d4 (diff)
downloadprocd-ef5d3e36e8b23ee2e1989c22717b21649dc9a388.tar.gz
jail: fix various ignoring return value compilation warning
This fix the following compilation error: jail/jail.c: In function 'main': jail/jail.c:2733:33: error: ignoring return value of 'asprintf' declared with attribute 'warn_unused_result' [-Werror=unused-result] 2733 | asprintf(&opts.envp[envc++], "%s=%s", enve->envarg, tmp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ jail/jail.c: In function 'build_jail_fs': jail/jail.c:740:24: error: ignoring return value of 'symlink' declared with attribute 'warn_unused_result' [-Werror=unused-result] 740 | (void) symlink("../dev/resolv.conf.d/resolv.conf.auto", jaillink); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ jail/jail.c: In function 'create_devices': jail/jail.c:643:16: error: ignoring return value of 'symlink' declared with attribute 'warn_unused_result' [-Werror=unused-result] 643 | (void) symlink("/dev/pts/ptmx", "/dev/ptmx"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ jail/jail.c:644:16: error: ignoring return value of 'symlink' declared with attribute 'warn_unused_result' [-Werror=unused-result] 644 | (void) symlink("/proc/self/fd", "/dev/fd"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ jail/jail.c:645:16: error: ignoring return value of 'symlink' declared with attribute 'warn_unused_result' [-Werror=unused-result] 645 | (void) symlink("/proc/self/fd/0", "/dev/stdin"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ jail/jail.c:646:16: error: ignoring return value of 'symlink' declared with attribute 'warn_unused_result' [-Werror=unused-result] 646 | (void) symlink("/proc/self/fd/1", "/dev/stdout"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ jail/jail.c:647:16: error: ignoring return value of 'symlink' declared with attribute 'warn_unused_result' [-Werror=unused-result] 647 | (void) symlink("/proc/self/fd/2", "/dev/stderr"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-rw-r--r--jail/jail.c39
1 files changed, 31 insertions, 8 deletions
diff --git a/jail/jail.c b/jail/jail.c
index bfa2587..ce6b268 100644
--- a/jail/jail.c
+++ b/jail/jail.c
@@ -585,6 +585,7 @@ static int create_devices(void)
{
struct mknod_args **cur, *curdef;
char *path, *tmp;
+ int ret;
if (!opts.devices)
goto only_default_devices;
@@ -640,11 +641,25 @@ only_default_devices:
}
/* Dev symbolic links as defined in OCI spec */
- (void) symlink("/dev/pts/ptmx", "/dev/ptmx");
- (void) symlink("/proc/self/fd", "/dev/fd");
- (void) symlink("/proc/self/fd/0", "/dev/stdin");
- (void) symlink("/proc/self/fd/1", "/dev/stdout");
- (void) symlink("/proc/self/fd/2", "/dev/stderr");
+ ret = symlink("/dev/pts/ptmx", "/dev/ptmx");
+ if (ret < 0)
+ WARNING("symlink() failed to create link to /dev/pts/ptmx");
+
+ ret = symlink("/proc/self/fd", "/dev/fd");
+ if (ret < 0)
+ WARNING("symlink() failed to create link to /proc/self/fd");
+
+ ret = symlink("/proc/self/fd/0", "/dev/stdin");
+ if (ret < 0)
+ WARNING("symlink() failed to create link to /proc/self/fd/0");
+
+ ret = symlink("/proc/self/fd/1", "/dev/stdout");
+ if (ret < 0)
+ WARNING("symlink() failed to create link to /proc/self/fd/1");
+
+ ret = symlink("/proc/self/fd/2", "/dev/stderr");
+ if (ret < 0)
+ WARNING("symlink() failed to create link to /proc/self/fd/2");
return 0;
}
@@ -737,7 +752,9 @@ static int build_jail_fs(void)
if (overlaydir)
unlink(jaillink);
- (void) symlink("../dev/resolv.conf.d/resolv.conf.auto", jaillink);
+ ret = symlink("../dev/resolv.conf.d/resolv.conf.auto", jaillink);
+ if (ret < 0)
+ WARNING("symlink() failed to create link to ../dev/resolv.conf.d/resolv.conf.auto");
}
run_hooks(opts.hooks.createContainer, enter_jail_fs);
@@ -2729,8 +2746,14 @@ int main(int argc, char **argv)
opts.envp = calloc(1 + envn, sizeof(char*));
list_for_each_entry_safe(enve, tmpenve, &envl, list) {
tmp = getenv(enve->envarg);
- if (tmp)
- asprintf(&opts.envp[envc++], "%s=%s", enve->envarg, tmp);
+ if (tmp) {
+ ret = asprintf(&opts.envp[envc++], "%s=%s", enve->envarg, tmp);
+ if (ret < 0) {
+ ERROR("filed to handle envargs %s\n", tmp);
+ free(enve);
+ goto errout;
+ }
+ }
list_del(&enve->list);
free(enve);