chiark / gitweb /
core: make sure we can combine DevicePolicy=closed with PrivateDevices=yes
[elogind.git] / src / shared / ask-password-api.c
index c9c82b25206d9444778e6432be5ec071b08758be..117f0c668747c15669154e2b4a764c69a124e8d3 100644 (file)
@@ -226,8 +226,7 @@ int ask_password_tty(
         r = 0;
 
 finish:
-        if (notify >= 0)
-                close_nointr_nofail(notify);
+        safe_close(notify);
 
         if (ttyfd >= 0) {
 
@@ -236,7 +235,7 @@ finish:
                         tcsetattr(ttyfd, TCSADRAIN, &old_termios);
                 }
 
-                close_nointr_nofail(ttyfd);
+                safe_close(ttyfd);
         }
 
         return r;
@@ -290,7 +289,7 @@ static int create_socket(char **name) {
         return fd;
 
 fail:
-        close_nointr_nofail(fd);
+        safe_close(fd);
 
         return r;
 }
@@ -325,10 +324,7 @@ int ask_password_agent(
 
         mkdir_p_label("/run/systemd/ask-password", 0755);
 
-        RUN_WITH_UMASK(0022) {
-                fd = mkostemp(temp, O_CLOEXEC|O_CREAT|O_WRONLY);
-        }
-
+        fd = mkostemp_safe(temp, O_WRONLY|O_CLOEXEC);
         if (fd < 0) {
                 log_error("Failed to create password file: %m");
                 r = -errno;
@@ -524,19 +520,15 @@ int ask_password_agent(
         r = 0;
 
 finish:
-        if (fd >= 0)
-                close_nointr_nofail(fd);
+        safe_close(fd);
 
         if (socket_name) {
                 unlink(socket_name);
                 free(socket_name);
         }
 
-        if (socket_fd >= 0)
-                close_nointr_nofail(socket_fd);
-
-        if (signal_fd >= 0)
-                close_nointr_nofail(signal_fd);
+        safe_close(socket_fd);
+        safe_close(signal_fd);
 
         if (f)
                 fclose(f);