- rt#33242, rhbz#459918. Segfault after reblessing objects in Storable.
- rhbz#465728 upgrade Simple::Pod to 3.07
This commit is contained in:
parent
22856c1cef
commit
b49264de86
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,57 @@
|
||||||
|
diff -up perl-5.10.0/ext/Storable/Storable.xs.old perl-5.10.0/ext/Storable/Storable.xs
|
||||||
|
--- perl-5.10.0/ext/Storable/Storable.xs.old 2007-12-18 11:47:07.000000000 +0100
|
||||||
|
+++ perl-5.10.0/ext/Storable/Storable.xs 2008-09-30 14:03:38.000000000 +0200
|
||||||
|
@@ -4561,7 +4561,13 @@ static SV *retrieve_overloaded(pTHX_ stc
|
||||||
|
* WARNING: breaks RV encapsulation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
- sv_upgrade(rv, SVt_RV);
|
||||||
|
+ if (cname) {
|
||||||
|
+ /* No need to do anything, as rv will already be PVMG. */
|
||||||
|
+ assert (SvTYPE(rv) >= SVt_RV);
|
||||||
|
+ } else {
|
||||||
|
+ sv_upgrade(rv, SVt_RV);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
SvRV_set(rv, sv); /* $rv = \$sv */
|
||||||
|
SvROK_on(rv);
|
||||||
|
|
||||||
|
diff -up perl-5.10.0/ext/Storable/t/overload.t.old perl-5.10.0/ext/Storable/t/overload.t
|
||||||
|
--- perl-5.10.0/ext/Storable/t/overload.t.old 2007-12-18 11:47:07.000000000 +0100
|
||||||
|
+++ perl-5.10.0/ext/Storable/t/overload.t 2008-09-30 14:05:04.000000000 +0200
|
||||||
|
@@ -25,7 +25,7 @@ sub ok;
|
||||||
|
|
||||||
|
use Storable qw(freeze thaw);
|
||||||
|
|
||||||
|
-print "1..16\n";
|
||||||
|
+print "1..20\n";
|
||||||
|
|
||||||
|
package OVERLOADED;
|
||||||
|
|
||||||
|
@@ -59,6 +59,14 @@ sub make {
|
||||||
|
return $self;
|
||||||
|
}
|
||||||
|
|
||||||
|
+package SCALAR_REF_TO_OVER;
|
||||||
|
+
|
||||||
|
+sub create {
|
||||||
|
+my ($class) = @_;
|
||||||
|
+my $over = bless {}, 'OVER';
|
||||||
|
+return bless \$over, $class;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
package OVER;
|
||||||
|
|
||||||
|
use overload
|
||||||
|
@@ -103,4 +111,11 @@ ok 13, $@ eq "";
|
||||||
|
ok 14, ref ($t) eq 'REF';
|
||||||
|
ok 15, ref ($$t) eq 'HAS_OVERLOAD';
|
||||||
|
ok 16, $$$t eq 'snow';
|
||||||
|
+$c = SCALAR_REF_TO_OVER->create();
|
||||||
|
+# Don't segfault here
|
||||||
|
+$d = thaw freeze $c;
|
||||||
|
+ok 17, ref($c) eq 'SCALAR_REF_TO_OVER';
|
||||||
|
+ok 18, ref($d) eq 'SCALAR_REF_TO_OVER';
|
||||||
|
+ok 19, ref($$c) eq 'OVER';
|
||||||
|
+ok 20, ref($$d) eq 'OVER';
|
||||||
|
1;
|
16
perl.spec
16
perl.spec
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
Name: perl
|
Name: perl
|
||||||
Version: %{perl_version}
|
Version: %{perl_version}
|
||||||
Release: 46%{?dist}
|
Release: 47%{?dist}
|
||||||
Epoch: %{perl_epoch}
|
Epoch: %{perl_epoch}
|
||||||
Summary: The Perl programming language
|
Summary: The Perl programming language
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
@ -91,6 +91,12 @@ Patch22: perl-5.10.0-TestSimple0.80.patch
|
||||||
# Archive::Tar update to 1.38 version
|
# Archive::Tar update to 1.38 version
|
||||||
Patch23: perl-5.10.0-ArchiveTar1.38.patch
|
Patch23: perl-5.10.0-ArchiveTar1.38.patch
|
||||||
|
|
||||||
|
# Storable segfaults when objects are reblessed rt#33242
|
||||||
|
Patch24: perl-5.10.0-Storable.patch
|
||||||
|
|
||||||
|
# Pod::Simple 3.07
|
||||||
|
Patch25: perl-5.10.0-PodSimple.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildRequires: tcsh, dos2unix, man, groff
|
BuildRequires: tcsh, dos2unix, man, groff
|
||||||
BuildRequires: gdbm-devel, db4-devel, zlib-devel
|
BuildRequires: gdbm-devel, db4-devel, zlib-devel
|
||||||
|
@ -821,6 +827,8 @@ upstream tarball from perl.org.
|
||||||
%patch21 -p1
|
%patch21 -p1
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
%patch23 -p1
|
%patch23 -p1
|
||||||
|
%patch24 -p1
|
||||||
|
%patch25 -p1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Candidates for doc recoding (need case by case review):
|
# Candidates for doc recoding (need case by case review):
|
||||||
|
@ -1046,6 +1054,8 @@ perl -x patchlevel.h 'Fedora Patch20: pos function handle unicode correct'
|
||||||
perl -x patchlevel.h 'Fedora Patch21: CGI.pm bug in exists() on tied param hash'
|
perl -x patchlevel.h 'Fedora Patch21: CGI.pm bug in exists() on tied param hash'
|
||||||
perl -x patchlevel.h 'Fedora Patch22: Update Test::Simple to 0.80'
|
perl -x patchlevel.h 'Fedora Patch22: Update Test::Simple to 0.80'
|
||||||
perl -x patchlevel.h 'Fedora Patch23: Update Archive::Tar 1.38'
|
perl -x patchlevel.h 'Fedora Patch23: Update Archive::Tar 1.38'
|
||||||
|
perl -x patchlevel.h 'Fedora Patch24: Storable fix'
|
||||||
|
perl -x patchlevel.h 'Fedora Patch25: Update to Pod::Simple 3.07'
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
@ -1653,6 +1663,10 @@ make test
|
||||||
|
|
||||||
# Old changelog entries are preserved in CVS.
|
# Old changelog entries are preserved in CVS.
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Oct 07 2008 Marcela Mašláňová <mmaslano@redhat.com> 4:5.10.0-47.fc10
|
||||||
|
- rt#33242, rhbz#459918. Segfault after reblessing objects in Storable.
|
||||||
|
- rhbz#465728 upgrade Simple::Pod to 3.07
|
||||||
|
|
||||||
* Wed Oct 1 2008 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-46
|
* Wed Oct 1 2008 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-46
|
||||||
- also preserve the timestamp of AUTHORS; move the fix to the recode
|
- also preserve the timestamp of AUTHORS; move the fix to the recode
|
||||||
function, which is where the stamps go wrong
|
function, which is where the stamps go wrong
|
||||||
|
|
Loading…
Reference in New Issue