X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-container.c;h=25ea471a08475085d00b0c2166f554a02e429b18;hp=eac1863244106a93aa42e5017a4afed2e8cf1874;hb=a009c158b098e961fd71db47a31ca15048c9816e;hpb=a7893c6b28772edbc7e1fea3c209caa54d465648 diff --git a/src/libsystemd-bus/bus-container.c b/src/libsystemd-bus/bus-container.c index eac186324..25ea471a0 100644 --- a/src/libsystemd-bus/bus-container.c +++ b/src/libsystemd-bus/bus-container.c @@ -44,6 +44,8 @@ int bus_container_connect(sd_bus *b) { return -ENOMEM; r = parse_env_file(p, NEWLINE, "LEADER", &s, "CLASS", &class, NULL); + if (r == -ENOENT) + return -EHOSTDOWN; if (r < 0) return r; if (!s) @@ -70,7 +72,7 @@ int bus_container_connect(sd_bus *b) { if (r < 0) return -ENOMEM; - rootfd = open(root, O_RDONLY|O_NOCTTY|O_CLOEXEC); + rootfd = open(root, O_RDONLY|O_NOCTTY|O_CLOEXEC|O_DIRECTORY); if (rootfd < 0) return -errno; @@ -99,7 +101,6 @@ int bus_container_connect(sd_bus *b) { if (chroot(".") < 0) _exit(255); - r = connect(b->input_fd, &b->sockaddr.sa, b->sockaddr_size); if (r < 0) { if (errno == EINPROGRESS)