mirror of
https://github.com/systemd/systemd.git
synced 2024-11-07 01:27:11 +03:00
core: namespace: nitpick /dev/ptmx error handling
If /dev/tty did not exist, or had st_rdev == 0, we ignored it. And the same is true for null, zero, full, random, urandom. If /dev/ptmx did not exist, we treated this as a failure. If /dev/ptmx had st_rdev == 0, we ignored it. This was a very recent change, but there was no reason for ptmx creation specifically to treat st_rdev == 0 differently from non-existence. This confuses me when reading it. Change the creation of /dev/ptmx so that st_rdev == 0 is treated as failure. This still leaves /dev/ptmx as a special case with stricter handling. However it is consistent with the immediately preceding creation of /dev/pts/, which is treated as essential, and is directly related to ptmx. I don't know why we check st_rdev. But I'd prefer to have only one unanswered question here, and not to have a second unanswered question added on top.
This commit is contained in:
parent
5caf49360b
commit
98b1d2b8d9
@ -525,7 +525,7 @@ static int clone_device_node(const char *d, const char *temporary_mount) {
|
||||
if (r < 0)
|
||||
return -errno;
|
||||
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int mount_private_dev(MountEntry *m) {
|
||||
@ -582,7 +582,7 @@ static int mount_private_dev(MountEntry *m) {
|
||||
}
|
||||
} else {
|
||||
r = clone_device_node("/dev/ptmx", temporary_mount);
|
||||
if (r < 0)
|
||||
if (r != 1)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user