summaryrefslogtreecommitdiff
path: root/dev_d.c
diff options
context:
space:
mode:
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>2004-10-07 00:17:11 -0700
committerGreg KH <gregkh@suse.de>2005-04-26 21:37:03 -0700
commit1059b07a143fac796a4ae8a7235cab9665a7622e (patch)
tree48551f0cd63c974317a857aa1889251eb70cfca7 /dev_d.c
parente284ecba7646562da9ad4c3c22871f6c341960d4 (diff)
[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
Diffstat (limited to 'dev_d.c')
-rw-r--r--dev_d.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/dev_d.c b/dev_d.c
index c091f11c28..eaf9b1dc12 100644
--- a/dev_d.c
+++ b/dev_d.c
@@ -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: