Clear $@ before `do' I/O error
This commit is contained in:
		
							parent
							
								
									01108a6d35
								
							
						
					
					
						commit
						d7a74399bf
					
				
							
								
								
									
										46
									
								
								perl-5.16.1-RT-113730-should-be-cleared-on-do-IO-error.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								perl-5.16.1-RT-113730-should-be-cleared-on-do-IO-error.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | From a3ff80c12c16886edf9acdd3d172798e50defdb3 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Eric Brine <ikegami@adaelis.com> | ||||||
|  | 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 b414e81..437bc8f 100644
 | ||||||
|  | --- a/pp_ctl.c
 | ||||||
|  | +++ b/pp_ctl.c
 | ||||||
|  | @@ -3928,6 +3928,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 93d3f73..c5a5905 100644
 | ||||||
|  | --- a/t/op/do.t
 | ||||||
|  | +++ b/t/op/do.t
 | ||||||
|  | @@ -286,4 +286,16 @@ SKIP: {
 | ||||||
|  |    is($w, undef, 'do STRING does not propagate warning hints'); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +# 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 | ||||||
|  | 
 | ||||||
| @ -93,6 +93,8 @@ Patch12:        perl-5.16.1-PATCH-perl-114220-h-not-equiv-to-h.patch | |||||||
| # TODO Looks like it was fixed differently? | # TODO Looks like it was fixed differently? | ||||||
| #Patch13:        perl-5.14.2-locale-search-inc.patch | #Patch13:        perl-5.14.2-locale-search-inc.patch | ||||||
| 
 | 
 | ||||||
|  | # Clear $@ before `do' I/O error, rhbz#834226, RT#113730 | ||||||
|  | Patch13:        perl-5.16.1-RT-113730-should-be-cleared-on-do-IO-error.patch | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Update some of the bundled modules | # Update some of the bundled modules | ||||||
| @ -1327,6 +1329,7 @@ tarball from perl.org. | |||||||
| %patch10 -p1 | %patch10 -p1 | ||||||
| %patch11 -p1 | %patch11 -p1 | ||||||
| %patch12 -p1 | %patch12 -p1 | ||||||
|  | %patch13 -p1 | ||||||
| 
 | 
 | ||||||
| #copy the example script | #copy the example script | ||||||
| cp -a %{SOURCE5} . | cp -a %{SOURCE5} . | ||||||
| @ -1531,6 +1534,7 @@ pushd %{build_archlib}/CORE/ | |||||||
|     'Fedora Patch10: Fix broken atof (RT#109318)' \ |     'Fedora Patch10: Fix broken atof (RT#109318)' \ | ||||||
|     'Fedora Patch11: Do not access freed memory when cloning thread (RT#111610)' \ |     'Fedora Patch11: Do not access freed memory when cloning thread (RT#111610)' \ | ||||||
|     'Fedora Patch12: Match non-breakable space with /[\h]/ in ASCII mode (RT#114220)' \ |     'Fedora Patch12: Match non-breakable space with /[\h]/ in ASCII mode (RT#114220)' \ | ||||||
|  |     'Fedora Patch13: Clear $@ before "do" I/O error (RT#113730)' \ | ||||||
|     %{nil} |     %{nil} | ||||||
| 
 | 
 | ||||||
| rm patchlevel.bak | rm patchlevel.bak | ||||||
| @ -2645,6 +2649,7 @@ sed \ | |||||||
| * Tue Sep 11 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-233 | * Tue Sep 11 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-233 | ||||||
| - Do not access freed memory when cloning thread (bug #825749) | - Do not access freed memory when cloning thread (bug #825749) | ||||||
| - Match non-breakable space with /[\h]/ in ASCII mode (bug #844919) | - Match non-breakable space with /[\h]/ in ASCII mode (bug #844919) | ||||||
|  | - Clear $@ before `do' I/O error (bug #834226) | ||||||
| 
 | 
 | ||||||
| * Wed Sep 05 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-232 | * Wed Sep 05 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-232 | ||||||
| - Move App::Cpan from perl-Test-Harness to perl-CPAN (bug #854577) | - Move App::Cpan from perl-Test-Harness to perl-CPAN (bug #854577) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user