Fix propagating non-string variables in an exception value
This commit is contained in:
		
							parent
							
								
									c303a0d3d1
								
							
						
					
					
						commit
						04bb682c86
					
				| @ -0,0 +1,54 @@ | |||||||
|  | From 85d4e0a35b2d44cf06a9343d23a2f84b8ebb9024 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Tony Cook <tony@develop-help.com> | ||||||
|  | Date: Wed, 17 Jul 2019 11:32:50 +1000 | ||||||
|  | Subject: [PATCH] (perl #134291) propagate non-PVs in $@ in bare die() | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Type: text/plain; charset=UTF-8 | ||||||
|  | Content-Transfer-Encoding: 8bit | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Petr Písař <ppisar@redhat.com> | ||||||
|  | ---
 | ||||||
|  |  pp_sys.c   | 2 +- | ||||||
|  |  t/op/die.t | 6 +++++- | ||||||
|  |  2 files changed, 6 insertions(+), 2 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/pp_sys.c b/pp_sys.c
 | ||||||
|  | index 0214367ea6..251527785e 100644
 | ||||||
|  | --- a/pp_sys.c
 | ||||||
|  | +++ b/pp_sys.c
 | ||||||
|  | @@ -498,7 +498,7 @@ PP(pp_die)
 | ||||||
|  |  		} | ||||||
|  |  	    } | ||||||
|  |  	} | ||||||
|  | -	else if (SvPOK(errsv) && SvCUR(errsv)) {
 | ||||||
|  | +	else if (SvOK(errsv) && (SvPV_nomg(errsv,len), len)) {
 | ||||||
|  |  	    exsv = sv_mortalcopy(errsv); | ||||||
|  |  	    sv_catpvs(exsv, "\t...propagated"); | ||||||
|  |  	} | ||||||
|  | diff --git a/t/op/die.t b/t/op/die.t
 | ||||||
|  | index ef2b85f8f5..d6d7daffa5 100644
 | ||||||
|  | --- a/t/op/die.t
 | ||||||
|  | +++ b/t/op/die.t
 | ||||||
|  | @@ -6,7 +6,7 @@ BEGIN {
 | ||||||
|  |      set_up_inc('../lib'); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | -plan tests => 20;
 | ||||||
|  | +plan tests => 21;
 | ||||||
|  |   | ||||||
|  |  eval { | ||||||
|  |      eval { | ||||||
|  | @@ -94,6 +94,10 @@ like($@, qr/\.{3}propagated at/, '... and appends a phrase');
 | ||||||
|  |      local $SIG{__WARN__} = sub { $ok = 0 }; | ||||||
|  |      eval { undef $@; die }; | ||||||
|  |      is( $ok, 1, 'no warnings if $@ is undef' ); | ||||||
|  | +
 | ||||||
|  | +    eval { $@ = 100; die };
 | ||||||
|  | +    like($@."", qr/100\t\.{3}propagated at/,
 | ||||||
|  | +         'check non-PVs in $@ are propagated');
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  TODO: { | ||||||
|  | -- 
 | ||||||
|  | 2.20.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										11
									
								
								perl.spec
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								perl.spec
									
									
									
									
									
								
							| @ -85,7 +85,7 @@ License:        GPL+ or Artistic | |||||||
| Epoch:          %{perl_epoch} | Epoch:          %{perl_epoch} | ||||||
| Version:        %{perl_version} | Version:        %{perl_version} | ||||||
| # release number must be even higher, because dual-lived modules will be broken otherwise | # release number must be even higher, because dual-lived modules will be broken otherwise | ||||||
| Release:        442%{?dist} | Release:        443%{?dist} | ||||||
| Summary:        Practical Extraction and Report Language | Summary:        Practical Extraction and Report Language | ||||||
| Url:            https://www.perl.org/ | Url:            https://www.perl.org/ | ||||||
| Source0:        https://www.cpan.org/src/5.0/perl-%{perl_version}.tar.xz | Source0:        https://www.cpan.org/src/5.0/perl-%{perl_version}.tar.xz | ||||||
| @ -231,6 +231,10 @@ Patch42:        perl-5.30.0-perl-134221-support-append-mode-for-open-.-undef.pat | |||||||
| Patch43:        perl-5.31.1-perl-134221-support-append-mode-temp-files-on-Win32-.patch | Patch43:        perl-5.31.1-perl-134221-support-append-mode-temp-files-on-Win32-.patch | ||||||
| Patch44:        perl-5.31.1-perl-134221-support-O_APPEND-for-open-.-undef-on-VMS.patch | Patch44:        perl-5.31.1-perl-134221-support-O_APPEND-for-open-.-undef-on-VMS.patch | ||||||
| 
 | 
 | ||||||
|  | # Fix propagating non-string variables in an exception value, RT#134291, | ||||||
|  | # fixed after 5.31.2 | ||||||
|  | Patch45:        perl-5.31.2-perl-134291-propagate-non-PVs-in-in-bare-die.patch | ||||||
|  | 
 | ||||||
| # Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048 | # 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 | Patch200:       perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch | ||||||
| 
 | 
 | ||||||
| @ -2797,6 +2801,7 @@ Perl extension for Version Objects | |||||||
| %patch42 -p1 | %patch42 -p1 | ||||||
| %patch43 -p1 | %patch43 -p1 | ||||||
| %patch44 -p1 | %patch44 -p1 | ||||||
|  | %patch45 -p1 | ||||||
| %patch200 -p1 | %patch200 -p1 | ||||||
| %patch201 -p1 | %patch201 -p1 | ||||||
| 
 | 
 | ||||||
| @ -2848,6 +2853,7 @@ perl -x patchlevel.h \ | |||||||
|     'Fedora Patch42: Preserve append mode when opening anonymous files (RT#134221)' \ |     'Fedora Patch42: Preserve append mode when opening anonymous files (RT#134221)' \ | ||||||
|     'Fedora Patch43: Preserve append mode when opening anonymous files (RT#134221)' \ |     'Fedora Patch43: Preserve append mode when opening anonymous files (RT#134221)' \ | ||||||
|     'Fedora Patch44: Preserve append mode when opening anonymous files (RT#134221)' \ |     'Fedora Patch44: Preserve append mode when opening anonymous files (RT#134221)' \ | ||||||
|  |     'Fedora Patch45: Fix propagating non-string variables in an exception value (RT#134291)' \ | ||||||
|     'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \ |     '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' \ |     'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \ | ||||||
|     %{nil} |     %{nil} | ||||||
| @ -5093,6 +5099,9 @@ popd | |||||||
| 
 | 
 | ||||||
| # Old changelog entries are preserved in CVS. | # Old changelog entries are preserved in CVS. | ||||||
| %changelog | %changelog | ||||||
|  | * Wed Aug 07 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.0-443 | ||||||
|  | - Fix propagating non-string variables in an exception value (RT#134291) | ||||||
|  | 
 | ||||||
| * Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4:5.30.0-442 | * Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4:5.30.0-442 | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild | - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user