if (pos == p || pos == NULL)
return 0;
- while (1) {
+ for (;;) {
*pos = '\0';
pos = strrchr(p, '/');
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};
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) {
if (errpipe[READ_END] > 0)
close(errpipe[READ_END]);
- /* return the childs stdout string */
+ /* return the child's stdout string */
if (result) {
result[respos] = '\0';
dbg(udev, "result='%s'\n", result);