]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
utils: split null_stdfds() to open_devnull() and set_stdfds()
authorAleksandr Mezin <mezin.alexander@gmail.com>
Thu, 24 Mar 2016 17:20:42 +0000 (23:20 +0600)
committerAleksandr Mezin <mezin.alexander@gmail.com>
Thu, 24 Mar 2016 17:20:42 +0000 (23:20 +0600)
Signed-off-by: Aleksandr Mezin <mezin.alexander@gmail.com>
src/lxc/utils.c
src/lxc/utils.h

index 8e7ebbc0dbff67e940ebb6f2f38c2808ef9cc534..5f15d9410e61679eb3f31e776f84d798fd728fc0 100644 (file)
@@ -1752,24 +1752,41 @@ domount:
        return 1;
 }
 
-int null_stdfds(void)
+int open_devnull(void)
 {
-       int fd, ret = -1;
+       int fd = open("/dev/null", O_RDWR);
+
+       if (fd < 0)
+               SYSERROR("Can't open /dev/null");
+
+       return fd;
+}
 
-       fd = open("/dev/null", O_RDWR);
+int set_stdfds(int fd)
+{
        if (fd < 0)
                return -1;
 
        if (dup2(fd, 0) < 0)
-               goto err;
+               return -1;
        if (dup2(fd, 1) < 0)
-               goto err;
+               return -1;
        if (dup2(fd, 2) < 0)
-               goto err;
+               return -1;
+
+       return 0;
+}
+
+int null_stdfds(void)
+{
+       int ret = -1;
+       int fd = open_devnull();
+
+       if (fd >= 0) {
+               ret = set_stdfds(fd);
+               close(fd);
+       }
 
-       ret = 0;
-err:
-       close(fd);
        return ret;
 }
 
index 7d20a398c50df6e3c187ba794de7b975b6c925aa..a8f09051e931e2cecc50813e450be6cbd965040d 100644 (file)
@@ -283,6 +283,8 @@ int setproctitle(char *title);
 int safe_mount(const char *src, const char *dest, const char *fstype,
                unsigned long flags, const void *data, const char *rootfs);
 int mount_proc_if_needed(const char *rootfs);
+int open_devnull(void);
+int set_stdfds(int fd);
 int null_stdfds(void);
 int lxc_count_file_lines(const char *fn);
 #endif /* __LXC_UTILS_H */