chiark / gitweb /
fix compilation with --enable-debug
[elogind.git] / libudev / libudev-util-private.c
index 5b3e337643d13a0c1cdaf38f9bb39a76a18a153f..8c535125a83c0fee9e818357912d8b1215ac1ecb 100644 (file)
@@ -114,8 +114,8 @@ int util_unlink_secure(struct udev *udev, const char *filename)
 {
        int err;
 
-       chmod(filename, 0000);
        chown(filename, 0, 0);
+       chmod(filename, 0000);
        err = unlink(filename);
        if (errno == ENOENT)
                err = 0;
@@ -254,7 +254,7 @@ int util_resolve_subsys_kernel(struct udev *udev, const char *string,
 
 int util_run_program(struct udev *udev, const char *command, char **envp,
                     char *result, size_t ressize, size_t *reslen,
-                    const sigset_t *sigmask)
+                    const sigset_t *sigmask, bool reset_prio)
 {
        int status;
        int outpipe[2] = {-1, -1};
@@ -349,6 +349,8 @@ int util_run_program(struct udev *udev, const char *command, char **envp,
 
                if (sigmask)
                        sigprocmask(SIG_SETMASK, sigmask, NULL);
+               if (reset_prio)
+                       setpriority(PRIO_PROCESS, 0, 0);
 
                execve(argv[0], argv, envp);
                if (errno == ENOENT || errno == ENOTDIR) {