From bf1e93571130d447b5314c4325377cc8b4037f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppi...@redhat.com> Date: Thu, 16 Jun 2016 08:18:38 +0200 Subject: Do not mangle errno from failed socket call
--- ...6-preserve-errno-from-failed-system-calls.patch | 73 ++++++++++++++++++++++ perl.spec | 7 +++ 2 files changed, 80 insertions(+) create mode 100644 perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch diff --git a/perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch b/perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch new file mode 100644 index 0000000..df7a173 --- /dev/null +++ b/perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch @@ -0,0 +1,73 @@ +From 3f6b66c14467c0f8c7459e32c576618155ca89f3 Mon Sep 17 00:00:00 2001 +From: Tony Cook <t...@develop-help.com> +Date: Thu, 16 Jun 2016 14:08:18 +1000 +Subject: [PATCH] (perl #128316) preserve errno from failed system calls +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař <ppi...@redhat.com> +--- + pp_sys.c | 4 ++-- + t/io/socket.t | 22 ++++++++++++++++++++++ + 2 files changed, 24 insertions(+), 2 deletions(-) + +diff --git a/pp_sys.c b/pp_sys.c +index 33cba46..3bf2673 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); +diff --git a/t/io/socket.t b/t/io/socket.t +index b51079a..54e4438 100644 +--- a/t/io/socket.t ++++ b/t/io/socket.t +@@ -128,6 +128,28 @@ SKIP: { + } + } + ++SKIP: ++{ ++ eval { require Errno; defined &Errno::EMFILE } ++ or skip "Can't load Errno or EMFILE not defined", 1; ++ my @socks; ++ my $sock_limit = 1000; # don't consume every file in the system ++ # Default limits on various systems I have: ++ # 65536 - Linux ++ # 256 - Solaris ++ # 128 - NetBSD ++ # 256 - Cygwin ++ # 256 - darwin ++ while (@socks < $sock_limit) { ++ socket my $work, PF_INET, SOCK_STREAM, $tcp ++ or last; ++ push @socks, $work; ++ } ++ @socks == $sock_limit ++ and skip "Didn't run out of open handles", 1; ++ is(0+$!, Errno::EMFILE(), "check correct errno for too many files"); ++} ++ + done_testing(); + + my @child_tests; +-- +2.5.5 + diff --git a/perl.spec b/perl.spec index 13132a2..aca30b9 100644 --- a/perl.spec +++ b/perl.spec @@ -106,6 +106,10 @@ Patch31: perl-5.22.2-CVE-2016-1238-maint-5.22-dot-in-inc.patch # Fix a crash in lexical scope warnings, RT#128597, in upstream after 5.25.2 Patch32: perl-5.22.2-perl-128597-Crash-from-gp_free-ckWARN_d.patch +# Do not mangle errno from failed socket calls, RT#128316, +# in upstream after 5.25.1 +Patch33: perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch + # Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048 Patch200: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch @@ -2379,6 +2383,7 @@ Perl extension for Version Objects %patch30 -p1 %patch31 -p1 %patch32 -p1 +%patch33 -p1 %patch200 -p1 %patch201 -p1 @@ -2403,6 +2408,7 @@ perl -x patchlevel.h \ 'Fedora Patch30: Do not let XSLoader load relative paths (CVE-2016-6185)' \ 'Fedora Patch31: Avoid loading optional modules from default . (CVE-2016-1238)' \ 'Fedora Patch32: Fix a crash in lexical scope warnings (RT#128597)' \ + 'Fedora Patch33: Do not mangle errno from failed socket calls (RT#128316)' \ 'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \ 'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \ %{nil} @@ -4657,6 +4663,7 @@ popd %changelog * Fri Nov 04 2016 Petr Pisar <ppi...@redhat.com> - 4:5.22.2-363 - Fix a crash in lexical scope warnings (RT#128597) +- Do not mangle errno from failed socket calls (RT#128316) * Wed Aug 03 2016 Jitka Plesnikova <jples...@redhat.com> - 4:5.22.2-362 - Avoid loading optional modules from default . (CVE-2016-1238) -- cgit v0.12 http://pkgs.fedoraproject.org/cgit/perl.git/commit/?h=f24&id=bf1e93571130d447b5314c4325377cc8b4037f6e _______________________________________________ perl-devel mailing list -- perl-devel@lists.fedoraproject.org To unsubscribe send an email to perl-devel-le...@lists.fedoraproject.org