X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-inhibit.c;h=60b6237ce5e71b3604bbee4b528a74cfa2956992;hb=a6e87e90ede66815989ba2db92a07102a69906fe;hp=512fc0716bb4f1ad9ad3b6833ec7907f8a016331;hpb=d889a2069a87e4617b32ddbdeace5a53a12c699d;p=elogind.git diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c index 512fc0716..60b6237ce 100644 --- a/src/login/logind-inhibit.c +++ b/src/login/logind-inhibit.c @@ -84,7 +84,7 @@ int inhibitor_save(Inhibitor *i) { assert(i); - r = safe_mkdir("/run/systemd/inhibit", 0755, 0, 0); + r = mkdir_safe_label("/run/systemd/inhibit", 0755, 0, 0); if (r < 0) goto finish; @@ -219,11 +219,17 @@ int inhibitor_load(Inhibitor *i) { if (mm >= 0) i->mode = mm; - if (uid) - parse_uid(uid, &i->uid); + if (uid) { + r = parse_uid(uid, &i->uid); + if (r < 0) + goto finish; + } - if (pid) - parse_pid(pid, &i->pid); + if (pid) { + r = parse_pid(pid, &i->pid); + if (r < 0) + goto finish; + } if (who) { cc = cunescape(who); @@ -272,7 +278,7 @@ int inhibitor_create_fifo(Inhibitor *i) { /* Create FIFO */ if (!i->fifo_path) { - r = safe_mkdir("/run/systemd/inhibit", 0755, 0, 0); + r = mkdir_safe_label("/run/systemd/inhibit", 0755, 0, 0); if (r < 0) return r; @@ -297,7 +303,7 @@ int inhibitor_create_fifo(Inhibitor *i) { zero(ev); ev.events = 0; - ev.data.u32 = FD_FIFO_BASE + i->fifo_fd; + ev.data.u32 = FD_OTHER_BASE + i->fifo_fd; if (epoll_ctl(i->manager->epoll_fd, EPOLL_CTL_ADD, i->fifo_fd, &ev) < 0) return -errno;