summaryrefslogtreecommitdiff
path: root/pp_sys.c
diff options
context:
space:
mode:
authorTony Cook <tony@develop-help.com>2016-06-16 14:08:18 +1000
committerSteve Hay <steve.m.hay@googlemail.com>2017-07-28 08:17:15 +0100
commit92337d93eaa52fc4eb8ea52b4fc206db597c029d (patch)
treee61f0b3967865b56506e507cc09ac7372b846f13 /pp_sys.c
parent6035f919de13f70b44763ca492202f747d2c2758 (diff)
downloadperl-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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/pp_sys.c b/pp_sys.c
index 33cba461ee..3bf2673112 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -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);