summaryrefslogtreecommitdiff
path: root/pp_sys.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-10-25 07:55:43 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-10-25 07:55:43 +0000
commit22865c0373795c55af29c594dcbe129bba61a1fb (patch)
tree736022c0baaa406af7f320b216b038bb2e1e247b /pp_sys.c
parent5cfd8ad4f558182b6e72bde4ff635f51de55178d (diff)
downloadperl-22865c0373795c55af29c594dcbe129bba61a1fb.tar.gz
fix stack overrun in file test operators
p4raw-id: //depot/perl@2073
Diffstat (limited to 'pp_sys.c')
-rw-r--r--pp_sys.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/pp_sys.c b/pp_sys.c
index fe6925901f..32ce19f72c 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -2329,11 +2329,13 @@ PP(pp_ftrread)
if (result < 0)
RETPUSHUNDEF;
RETPUSHNO;
- } else
+ }
+ else
result = my_stat(ARGS);
#else
result = my_stat(ARGS);
#endif
+ SPAGAIN;
if (result < 0)
RETPUSHUNDEF;
if (cando(S_IRUSR, 0, &PL_statcache))
@@ -2353,11 +2355,13 @@ PP(pp_ftrwrite)
if (result < 0)
RETPUSHUNDEF;
RETPUSHNO;
- } else
+ }
+ else
result = my_stat(ARGS);
#else
result = my_stat(ARGS);
#endif
+ SPAGAIN;
if (result < 0)
RETPUSHUNDEF;
if (cando(S_IWUSR, 0, &PL_statcache))
@@ -2377,11 +2381,13 @@ PP(pp_ftrexec)
if (result < 0)
RETPUSHUNDEF;
RETPUSHNO;
- } else
+ }
+ else
result = my_stat(ARGS);
#else
result = my_stat(ARGS);
#endif
+ SPAGAIN;
if (result < 0)
RETPUSHUNDEF;
if (cando(S_IXUSR, 0, &PL_statcache))
@@ -2401,11 +2407,13 @@ PP(pp_fteread)
if (result < 0)
RETPUSHUNDEF;
RETPUSHNO;
- } else
+ }
+ else
result = my_stat(ARGS);
#else
result = my_stat(ARGS);
#endif
+ SPAGAIN;
if (result < 0)
RETPUSHUNDEF;
if (cando(S_IRUSR, 1, &PL_statcache))
@@ -2425,11 +2433,13 @@ PP(pp_ftewrite)
if (result < 0)
RETPUSHUNDEF;
RETPUSHNO;
- } else
+ }
+ else
result = my_stat(ARGS);
#else
result = my_stat(ARGS);
#endif
+ SPAGAIN;
if (result < 0)
RETPUSHUNDEF;
if (cando(S_IWUSR, 1, &PL_statcache))
@@ -2449,11 +2459,13 @@ PP(pp_fteexec)
if (result < 0)
RETPUSHUNDEF;
RETPUSHNO;
- } else
+ }
+ else
result = my_stat(ARGS);
#else
result = my_stat(ARGS);
#endif
+ SPAGAIN;
if (result < 0)
RETPUSHUNDEF;
if (cando(S_IXUSR, 1, &PL_statcache))