summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/chap.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1999-06-09 08:47:36 +0000
committerbrian <brian@FreeBSD.org>1999-06-09 08:47:36 +0000
commitfb0eee157d1c0f7de57d40fbf76e6c7f01de31df (patch)
treed47399688c47f8f9c41c12296a3cce9ba775f886 /usr.sbin/ppp/chap.c
parentf6ef6875616b27561cbd9f7f0e44643ea8c07154 (diff)
downloadFreeBSD-src-fb0eee157d1c0f7de57d40fbf76e6c7f01de31df.zip
FreeBSD-src-fb0eee157d1c0f7de57d40fbf76e6c7f01de31df.tar.gz
Use the correct pid when substituting PROCESSID.
Problem reported by: Amedeo Beck Peccoz <gea@gressoney.it>
Diffstat (limited to 'usr.sbin/ppp/chap.c')
-rw-r--r--usr.sbin/ppp/chap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/ppp/chap.c b/usr.sbin/ppp/chap.c
index 1ae6d8e..d9d63bb 100644
--- a/usr.sbin/ppp/chap.c
+++ b/usr.sbin/ppp/chap.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: chap.c,v 1.50 1999/05/08 11:06:15 brian Exp $
+ * $Id: chap.c,v 1.51 1999/06/02 15:58:55 brian Exp $
*
* TODO:
*/
@@ -197,6 +197,7 @@ chap_StartChild(struct chap *chap, char *prog, const char *name)
char *argv[MAXARGS], *nargv[MAXARGS];
int argc, fd;
int in[2], out[2];
+ pid_t pid;
if (chap->child.fd != -1) {
log_Printf(LogWARN, "Chap: %s: Program already running\n", prog);
@@ -215,6 +216,7 @@ chap_StartChild(struct chap *chap, char *prog, const char *name)
return;
}
+ pid = getpid();
switch ((chap->child.pid = fork())) {
case -1:
log_Printf(LogERROR, "Chap: fork: %s\n", strerror(errno));
@@ -247,7 +249,7 @@ chap_StartChild(struct chap *chap, char *prog, const char *name)
setuid(geteuid());
argc = command_Interpret(prog, strlen(prog), argv);
command_Expand(nargv, argc, (char const *const *)argv,
- chap->auth.physical->dl->bundle, 0);
+ chap->auth.physical->dl->bundle, 0, pid);
execvp(nargv[0], nargv);
log_Printf(LogWARN, "exec() of %s failed: %s\n",
OpenPOWER on IntegriCloud