aboutsummaryrefslogtreecommitdiffstats
path: root/nonworking/ppp/ppp/fix_closed_fds
diff options
context:
space:
mode:
Diffstat (limited to 'nonworking/ppp/ppp/fix_closed_fds')
-rw-r--r--nonworking/ppp/ppp/fix_closed_fds34
1 files changed, 34 insertions, 0 deletions
diff --git a/nonworking/ppp/ppp/fix_closed_fds b/nonworking/ppp/ppp/fix_closed_fds
index e69de29bb2..39208ab4db 100644
--- a/nonworking/ppp/ppp/fix_closed_fds
+++ b/nonworking/ppp/ppp/fix_closed_fds
@@ -0,0 +1,34 @@
+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) {