[perl/f17] Clear $@ before `do' I/O error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



commit c1027e1fb47dfc453aecec8ddb3b8df25d425cba
Author: Petr Písař <ppisar@xxxxxxxxxx>
Date:   Tue Sep 11 10:32:13 2012 +0200

    Clear $@ before `do' I/O error

 ...T-113730-should-be-cleared-on-do-IO-error.patch |   52 ++++++++++++++++++++
 perl.spec                                          |   10 +++-
 2 files changed, 61 insertions(+), 1 deletions(-)
---
diff --git a/perl-5.14.2-RT-113730-should-be-cleared-on-do-IO-error.patch b/perl-5.14.2-RT-113730-should-be-cleared-on-do-IO-error.patch
new file mode 100644
index 0000000..032a5ea
--- /dev/null
+++ b/perl-5.14.2-RT-113730-should-be-cleared-on-do-IO-error.patch
@@ -0,0 +1,52 @@
+From c972fa9ce0ad91f72c8f5650ce1e3aae4a3b571a Mon Sep 17 00:00:00 2001
+From: Eric Brine <ikegami@xxxxxxxxxxx>
+Date: Mon, 18 Jun 2012 14:56:32 -0400
+Subject: [PATCH] RT#113730 - $@ should be cleared on "do" IO error.
+
+Petr Pisar: Ported to 5.14.2:
+
+From a3ff80c12c16886edf9acdd3d172798e50defdb3 Mon Sep 17 00:00:00 2001
+From: Eric Brine <ikegami@xxxxxxxxxxx>
+Date: Mon, 18 Jun 2012 14:56:32 -0400
+Subject: [PATCH] RT#113730 - $@ should be cleared on "do" IO error.
+---
+ pp_ctl.c  |  1 +
+ t/op/do.t | 12 ++++++++++++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/pp_ctl.c b/pp_ctl.c
+index 60bc30d..3f2e6f5 100644
+--- a/pp_ctl.c
++++ b/pp_ctl.c
+@@ -3842,6 +3842,7 @@ PP(pp_require)
+ 	    DIE(aTHX_ "Can't locate %s", name);
+ 	}
+ 
++	CLEAR_ERRSV();
+ 	RETPUSHUNDEF;
+     }
+     else
+diff --git a/t/op/do.t b/t/op/do.t
+index 787d632..4c9f0ef 100644
+--- a/t/op/do.t
++++ b/t/op/do.t
+@@ -197,4 +197,16 @@ is($x, 4, 'if (0){} else { ...; @a } receives caller scalar context');
+ @x = sub { if (0){} else { 0; @a } }->();
+ is("@x", "24 25 26 27", 'if (0){} else { ...; @a } receives caller list context');
+ 
++# RT#113730 - $@ should be cleared on IO error.
++{
++    $@ = "should not see";
++    $! = 0;
++    my $rv = do("some nonexistent file");
++    my $saved_error = $@;
++    my $saved_errno = $!;
++    ok(!$rv,          "do returns false on io errror");
++    ok(!$saved_error, "\$\@ not set on io error");
++    ok($saved_errno,  "\$! set on io error");
++}
++
+ done_testing();
+-- 
+1.7.11.4
+
diff --git a/perl.spec b/perl.spec
index 0ba6ca8..491cd1b 100644
--- a/perl.spec
+++ b/perl.spec
@@ -24,7 +24,7 @@
 Name:           perl
 Version:        %{perl_version}
 # release number must be even higher, because dual-lived modules will be broken otherwise
-Release:        213%{?dist}
+Release:        214%{?dist}
 Epoch:          %{perl_epoch}
 Summary:        Practical Extraction and Report Language
 Group:          Development/Languages
@@ -98,6 +98,9 @@ Patch15:        perl-5.14.2-Stop-V-from-leaking.patch
 # Fix find2perl to translate ? glob properly, rhbz#825701, RT#113054
 Patch16:        perl-5.14.2-find2perl-transtate-question-mark-properly.patch
 
+# Clear $@ before `do' I/O error, rhbz#834226, RT#113730
+Patch17:        perl-5.14.2-RT-113730-should-be-cleared-on-do-IO-error.patch
+
 # Update some of the bundled modules
 # see http://fedoraproject.org/wiki/Perl/perl.spec for instructions
 
@@ -1265,6 +1268,7 @@ tarball from perl.org.
 %patch14 -p1
 %patch15 -p1
 %patch16 -p1
+%patch17 -p1
 
 #copy the example script
 cp -a %{SOURCE5} .
@@ -1471,6 +1475,7 @@ pushd %{build_archlib}/CORE/
     'Fedora Patch14: Run signal handlers before returning from sigsuspend' \
     'Fedora Patch15: Stop !$^V from leaking' \
     'Fedora Patch16: Fix find2perl to translate ? glob properly (RT#113054)' \
+    'Fedora Patch17: Clear $@ before "do" I/O error (RT#113730)' \
     %{nil}
 
 rm patchlevel.bak
@@ -2422,6 +2427,9 @@ sed \
 
 # Old changelog entries are preserved in CVS.
 %changelog
+* Tue Sep 11 2012 Petr Pisar <ppisar@xxxxxxxxxx> - 4:5.14.2-214
+- Clear $@ before `do' I/O error (bug #834226)
+
 * Wed Sep 05 2012 Petr Pisar <ppisar@xxxxxxxxxx> - 4:5.14.2-213
 - Remove perl-devel dependency from perl-Test-Harness and perl-Test-Simple
 - Move App::Cpan from perl-Test-Harness to perl-CPAN (bug #854577)
--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
perl-devel mailing list
perl-devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/perl-devel



[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Legacy Announce]     [Fedora PHP Devel]     [Kernel Devel]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite Information]
  Powered by Linux