diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-10-25 07:55:43 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-10-25 07:55:43 +0000 |
commit | 22865c0373795c55af29c594dcbe129bba61a1fb (patch) | |
tree | 736022c0baaa406af7f320b216b038bb2e1e247b /pp_sys.c | |
parent | 5cfd8ad4f558182b6e72bde4ff635f51de55178d (diff) | |
download | perl-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.c | 24 |
1 files changed, 18 insertions, 6 deletions
@@ -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)) |