summaryrefslogtreecommitdiff
path: root/doio.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-03-04 19:02:27 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-03-04 19:02:27 +0000
commit6af84f9fb71a3207be80bf9d2f1ad85d0d98bd09 (patch)
treedc7c56b3621370ccfefcd36f50c80b277ad4c447 /doio.c
parent04cf9722f96bb98b149fe523581f19b3062676dc (diff)
downloadperl-6af84f9fb71a3207be80bf9d2f1ad85d0d98bd09.tar.gz
avoid looking up stale PL_statbuf (spotted by Charles Lane
<lane@DUPHY4.Physics.Drexel.Edu>) p4raw-id: //depot/perl@5524
Diffstat (limited to 'doio.c')
-rw-r--r--doio.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/doio.c b/doio.c
index d0a770461e..3cd199b7aa 100644
--- a/doio.c
+++ b/doio.c
@@ -646,13 +646,17 @@ Perl_nextargv(pTHX_ register GV *gv)
else {
dTHR;
if (ckWARN_d(WARN_INPLACE)) {
- if (!S_ISREG(PL_statbuf.st_mode))
+ int eno = errno;
+ if (PerlLIO_stat(PL_oldname, &PL_statbuf) >= 0
+ && !S_ISREG(PL_statbuf.st_mode))
+ {
Perl_warner(aTHX_ WARN_INPLACE,
"Can't do inplace edit: %s is not a regular file",
PL_oldname);
+ }
else
Perl_warner(aTHX_ WARN_INPLACE, "Can't open %s: %s",
- PL_oldname, Strerror(errno));
+ PL_oldname, Strerror(eno));
}
}
}