You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
930 B

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) {