Merge pull request #1112 from poettering/sd-bus-container-fixes
machined and sd-bus container fixes
This commit is contained in:
@@ -1074,3 +1074,22 @@ int get_ctty(pid_t pid, dev_t *_devnr, char **r) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ptsname_namespace(int pty, char **ret) {
|
||||
int no = -1, r;
|
||||
|
||||
/* Like ptsname(), but doesn't assume that the path is
|
||||
* accessible in the local namespace. */
|
||||
|
||||
r = ioctl(pty, TIOCGPTN, &no);
|
||||
if (r < 0)
|
||||
return -errno;
|
||||
|
||||
if (no < 0)
|
||||
return -EIO;
|
||||
|
||||
if (asprintf(ret, "/dev/pts/%i", no) < 0)
|
||||
return -ENOMEM;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -107,3 +107,5 @@ int get_ctty(pid_t, dev_t *_devnr, char **r);
|
||||
|
||||
int getttyname_malloc(int fd, char **r);
|
||||
int getttyname_harder(int fd, char **r);
|
||||
|
||||
int ptsname_namespace(int pty, char **ret);
|
||||
|
||||
@@ -6095,6 +6095,9 @@ int openpt_in_namespace(pid_t pid, int flags) {
|
||||
if (master < 0)
|
||||
_exit(EXIT_FAILURE);
|
||||
|
||||
if (unlockpt(master) < 0)
|
||||
_exit(EXIT_FAILURE);
|
||||
|
||||
cmsg = CMSG_FIRSTHDR(&mh);
|
||||
cmsg->cmsg_level = SOL_SOCKET;
|
||||
cmsg->cmsg_type = SCM_RIGHTS;
|
||||
|
||||
Reference in New Issue
Block a user