[PATCH] fix problems with dev.d and udevstart

Here is the correction for the dev.d/ scripts too. We should pass
the right argv[0] here too. A script may depend on the right value, as
udev does with udev/udevstart.

Here is the old version:
  [pid  4692] execve("/etc/dev.d/default/log.dev", ["./udev", "block"], [/* 41 vars */]) = 0

this the new one:
  [pid  9832] execve("/etc/dev.d/default/log.dev", ["/etc/dev.d/default/log.dev", "block"], [/* 41 vars */]) = 0
This commit is contained in:
kay.sievers@vrfy.org 2004-10-07 00:17:11 -07:00 committed by Greg KH
parent e284ecba76
commit 1059b07a14
2 changed files with 7 additions and 6 deletions

View File

@ -39,6 +39,7 @@ static int run_program(char *name)
{
pid_t pid;
int fd;
char *argv[3];
dbg("running %s", name);
@ -54,7 +55,12 @@ static int run_program(char *name)
dup2(fd, STDERR_FILENO);
}
close(fd);
execv(name, main_argv);
argv[0] = name;
argv[1] = main_argv[1];
argv[2] = NULL;
execv(name, argv);
dbg("exec of child failed");
exit(1);
case -1:

View File

@ -450,11 +450,6 @@ static int execute_program(const char *path, char *value, int len)
dbg("execute '%s' with subsystem '%s' argument", arg, argv[1]);
}
/* set basename() only */
pos = strrchr(argv[0], '/');
if (pos != NULL)
argv[0] = &pos[1];
retval = pipe(fds);
if (retval != 0) {
dbg("pipe failed");