start: lxc_check_inherited()

parent d2f10912
...@@ -192,10 +192,10 @@ static int match_fd(int fd) ...@@ -192,10 +192,10 @@ static int match_fd(int fd)
int lxc_check_inherited(struct lxc_conf *conf, bool closeall, int lxc_check_inherited(struct lxc_conf *conf, bool closeall,
int *fds_to_ignore, size_t len_fds) int *fds_to_ignore, size_t len_fds)
{ {
struct dirent *direntp;
int fd, fddir; int fd, fddir;
size_t i; size_t i;
DIR *dir; DIR *dir;
struct dirent *direntp;
if (conf && conf->close_all_fds) if (conf && conf->close_all_fds)
closeall = true; closeall = true;
...@@ -203,21 +203,24 @@ int lxc_check_inherited(struct lxc_conf *conf, bool closeall, ...@@ -203,21 +203,24 @@ int lxc_check_inherited(struct lxc_conf *conf, bool closeall,
restart: restart:
dir = opendir("/proc/self/fd"); dir = opendir("/proc/self/fd");
if (!dir) { if (!dir) {
WARN("Failed to open directory: %s.", strerror(errno)); WARN("%s - Failed to open directory", strerror(errno));
return -1; return -1;
} }
fddir = dirfd(dir); fddir = dirfd(dir);
while ((direntp = readdir(dir))) { while ((direntp = readdir(dir))) {
if (!strcmp(direntp->d_name, ".")) int ret;
if (strcmp(direntp->d_name, ".") == 0)
continue; continue;
if (!strcmp(direntp->d_name, "..")) if (strcmp(direntp->d_name, "..") == 0)
continue; continue;
if (lxc_safe_int(direntp->d_name, &fd) < 0) { ret = lxc_safe_int(direntp->d_name, &fd);
INFO("Could not parse file descriptor for: %s", direntp->d_name); if (ret < 0) {
INFO("Could not parse file descriptor for \"%s\"", direntp->d_name);
continue; continue;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment