massive changes
[openwrt/svn-archive/archive.git] / obsolete-buildroot / sources / openwrt / patches / ppp / fix_closed_fds
diff --git a/obsolete-buildroot/sources/openwrt/patches/ppp/fix_closed_fds b/obsolete-buildroot/sources/openwrt/patches/ppp/fix_closed_fds
new file mode 100644 (file)
index 0000000..39208ab
--- /dev/null
@@ -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) {