use fchmod rather than chmod to restore device permissions
authorPaul Mackerras <paulus@samba.org>
Tue, 19 Jan 1999 23:59:39 +0000 (23:59 +0000)
committerPaul Mackerras <paulus@samba.org>
Tue, 19 Jan 1999 23:59:39 +0000 (23:59 +0000)
pppd/main.c

index dbeaeac0ce400338301c9e9cd968541be41fc00b..214af7723cc7f708e67340584cdce7d9ff5b3a12 100644 (file)
@@ -18,7 +18,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char rcsid[] = "$Id: main.c,v 1.51 1998/11/07 06:59:28 paulus Exp $";
+static char rcsid[] = "$Id: main.c,v 1.52 1999/01/19 23:59:39 paulus Exp $";
 #endif
 
 #include <stdio.h>
 #endif
 
 #include <stdio.h>
@@ -827,8 +827,12 @@ close_tty()
 
     restore_tty(ttyfd);
 
 
     restore_tty(ttyfd);
 
-    if (tty_mode != (mode_t) -1)
-       chmod(devnam, tty_mode);
+    if (tty_mode != (mode_t) -1) {
+       if (fchmod(devnam, tty_mode) != 0) {
+           /* XXX if devnam is a symlink, this will change the link */
+           chmod(devnam, tty_mode);
+       }
+    }
 
     close(ttyfd);
     ttyfd = -1;
 
     close(ttyfd);
     ttyfd = -1;