summaryrefslogtreecommitdiff
path: root/doio.c
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2004-02-29 18:06:45 +0000
committerDave Mitchell <davem@fdisolutions.com>2004-02-29 18:06:45 +0000
commit1bee17442256977943a8677f330a431fa07b2d57 (patch)
treedc0cd3e7f9948c36d1e00de01ff632527f9fbcd3 /doio.c
parent1bba8f2aea8f893c15aa82f3aaf954d0dc6f80cf (diff)
downloadperl-1bee17442256977943a8677f330a431fa07b2d57.tar.gz
[perl #24521] make test breaks permissions on /dev/tty
perl -i could fchmod(stdin) by mistake p4raw-id: //depot/perl@22415
Diffstat (limited to 'doio.c')
-rw-r--r--doio.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/doio.c b/doio.c
index f0b036a0d0..7e13f1f6d0 100644
--- a/doio.c
+++ b/doio.c
@@ -723,11 +723,13 @@ Perl_nextargv(pTHX_ register GV *gv)
if (PL_filemode & (S_ISUID|S_ISGID)) {
PerlIO_flush(IoIFP(GvIOn(PL_argvoutgv))); /* chmod must follow last write */
#ifdef HAS_FCHMOD
- (void)fchmod(PL_lastfd,PL_filemode);
+ if (PL_lastfd != -1)
+ (void)fchmod(PL_lastfd,PL_filemode);
#else
(void)PerlLIO_chmod(PL_oldname,PL_filemode);
#endif
}
+ PL_lastfd = -1;
PL_filemode = 0;
if (!GvAV(gv))
return Nullfp;