diff --git a/udev/udev-exec.c b/udev/udev-exec.c index ae385bf..6ad4fc1 100644 --- a/udev/udev-exec.c +++ b/udev/udev-exec.c @@ -153,7 +153,9 @@ static int exec_msg(struct udev *udev, int sock, struct child **childp) if (child == NULL) return 0; - pid = fork(); + /* CAUTION. Child may (or may not) share memory - including stack. + Child should do the minimum necessary before exec() */ + pid = vfork(); switch(pid) { case 0: close(sock);