Ensure that the fd returned by the connect method is closed before
running external programs.

http://article.gmane.org/gmane.linux.ppp/1371

diff -ruNp ppp.orig/pppd/main.c ppp/pppd/main.c
--- ppp.orig/pppd/main.c	2004-07-12 12:55:30.000000000 +0200
+++ ppp/pppd/main.c	2004-07-12 12:55:25.000000000 +0200
@@ -1662,6 +1662,8 @@ run_program(prog, args, must_exist, done
     closelog();
     if (the_channel->close)
 	(*the_channel->close)();
+    else
+	close(devfd);
 
     /* Don't pass handles to the PPP device, even by accident. */
     dup2(fd_devnull, 0);
