https://bugzilla.redhat.com/show_bug.cgi?id=1147248 --- src/tmpfiles/tmpfiles.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 8108b43..ae0289d 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -824,6 +824,7 @@ static int create_item(Item *i) { case CREATE_BLOCK_DEVICE: case CREATE_CHAR_DEVICE: { mode_t file_type; + bool mknod_succeeded; if (have_effective_cap(CAP_MKNOD) == 0) { /* In a container we lack CAP_MKNOD. We @@ -842,6 +843,7 @@ static int create_item(Item *i) { r = mknod(i->path, i->mode | file_type, i->major_minor); label_context_clear(); } + mknod_succeeded = (r == 0); if (r < 0) { if (errno == EPERM) { @@ -881,10 +883,11 @@ static int create_item(Item *i) { } } - r = item_set_perms(i, i->path); - if (r < 0) - return r; - + if (mknod_succeeded) { + r = item_set_perms(i, i->path); + if (r < 0) + return r; + } break; } -- 1.9.3 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel