X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fmain.c;h=7072d0a871fabcf9b615e3df1b179ff41ae2aa1d;hp=8bb5caa512295b06c2b7b97684e791857fe7947a;hb=55f9a71c296dcdf5bdad0970b55b2f91094ae2e7;hpb=7097785dc774ed0ff166a0434a90ffc342814ae9 diff --git a/pppd/main.c b/pppd/main.c index 8bb5caa..7072d0a 100644 --- a/pppd/main.c +++ b/pppd/main.c @@ -18,7 +18,7 @@ */ #ifndef lint -static char rcsid[] = "$Id: main.c,v 1.47 1998/03/30 06:25:34 paulus Exp $"; +static char rcsid[] = "$Id: main.c,v 1.50 1998/09/13 23:38:49 paulus Exp $"; #endif #include @@ -199,7 +199,7 @@ main(argc, argv) uid = getuid(); privileged = uid == 0; sprintf(numbuf, "%d", uid); - script_setenv("UID", numbuf); + script_setenv("ORIG_UID", numbuf); /* * Initialize to the standard option set, then parse, in order, @@ -1037,6 +1037,11 @@ static void bad_signal(sig) int sig; { + static int crashed = 0; + + if (crashed) + _exit(127); + crashed = 1; syslog(LOG_ERR, "Fatal signal %d", sig); if (conn_running) kill_my_pg(SIGTERM); @@ -1287,10 +1292,9 @@ pr_log __V((void *arg, char *fmt, ...)) fmt = va_arg(pvar, char *); #endif - vsprintf(buf, fmt, pvar); + n = vfmtmsg(buf, sizeof(buf), fmt, pvar); va_end(pvar); - n = strlen(buf); if (linep + n + 1 > line + sizeof(line)) { syslog(LOG_DEBUG, "%s", line); linep = line;