35 lines
930 B
Text
35 lines
930 B
Text
|
sys_init() will open a socket and keep it open for the whole like of the
|
||
|
process. If pppd is started without all standard fds open then the socket
|
||
|
will get one of their numbers, which will be clobbered later by the
|
||
|
/dev/null fd duplicated by main().
|
||
|
|
||
|
See Debian bug #235192.
|
||
|
|
||
|
diff -ruN ppp.orig/pppd/main.c ppp/pppd/main.c
|
||
|
--- ppp.orig/pppd/main.c 2004-02-29 18:50:12.000000000 +0100
|
||
|
+++ ppp/pppd/main.c 2004-02-29 18:48:56.000000000 +0100
|
||
|
@@ -385,11 +385,6 @@
|
||
|
if (dryrun)
|
||
|
die(0);
|
||
|
|
||
|
- /*
|
||
|
- * Initialize system-dependent stuff.
|
||
|
- */
|
||
|
- sys_init();
|
||
|
-
|
||
|
/* Make sure fds 0, 1, 2 are open to somewhere. */
|
||
|
fd_devnull = open(_PATH_DEVNULL, O_RDWR);
|
||
|
if (fd_devnull < 0)
|
||
|
@@ -401,6 +396,11 @@
|
||
|
fd_devnull = i;
|
||
|
}
|
||
|
|
||
|
+ /*
|
||
|
+ * Initialize system-dependent stuff.
|
||
|
+ */
|
||
|
+ sys_init();
|
||
|
+
|
||
|
#ifdef USE_TDB
|
||
|
pppdb = tdb_open(_PATH_PPPDB, 0, 0, O_RDWR|O_CREAT, 0644);
|
||
|
if (pppdb != NULL) {
|