diff options
author | Tony Cook <tony@develop-help.com> | 2016-06-16 14:08:18 +1000 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2017-07-28 08:17:15 +0100 |
commit | 92337d93eaa52fc4eb8ea52b4fc206db597c029d (patch) | |
tree | e61f0b3967865b56506e507cc09ac7372b846f13 /pp_sys.c | |
parent | 6035f919de13f70b44763ca492202f747d2c2758 (diff) | |
download | perl-92337d93eaa52fc4eb8ea52b4fc206db597c029d.tar.gz |
(perl #128316) preserve errno from failed system calls
(cherry picked from commit 3f6b66c14467c0f8c7459e32c576618155ca89f3)
Diffstat (limited to 'pp_sys.c')
-rw-r--r-- | pp_sys.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -2497,7 +2497,6 @@ PP(pp_socket) TAINT_PROPER("socket"); fd = PerlSock_socket(domain, type, protocol); if (fd < 0) { - SETERRNO(EBADF,RMS_IFI); RETPUSHUNDEF; } IoIFP(io) = PerlIO_fdopen(fd, "r"SOCKET_OPEN_MODE); /* stdio gets confused about sockets */ @@ -3531,8 +3530,9 @@ PP(pp_fttext) } PL_laststatval = PerlLIO_fstat(fd, &PL_statcache); if (PL_laststatval < 0) { + dSAVE_ERRNO; (void)PerlIO_close(fp); - SETERRNO(EBADF,RMS_IFI); + RESTORE_ERRNO; FT_RETURNUNDEF; } PerlIO_binmode(aTHX_ fp, '<', O_BINARY, NULL); |