diff --git a/perl-5.18.2-overflow.diff b/perl-5.18.2-overflow.diff new file mode 100644 index 0000000..f4ab898 --- /dev/null +++ b/perl-5.18.2-overflow.diff @@ -0,0 +1,11 @@ +--- sv.c.bak 2014-03-24 15:11:48.007595042 +0100 ++++ sv.c 2014-03-25 11:57:41.154752451 +0100 +@@ -2008,7 +2008,7 @@ S_sv_2iuv_common(pTHX_ SV *const sv) + if (SvNVX(sv) == (NV) SvIVX(sv) + #ifndef NV_PRESERVES_UV + && (((UV)1 << NV_PRESERVES_UV_BITS) > +- (UV)(SvIVX(sv) > 0 ? SvIVX(sv) : -SvIVX(sv))) ++ (UV)(SvIVX(sv) > 0 ? SvIVX(sv) : -SvUVX(sv))) + /* Don't flag it as "accurately an integer" if the number + came from a (by definition imprecise) NV operation, and + we're outside the range of NV integer precision */ diff --git a/perl.changes b/perl.changes index f1fab00..0fbbb4b 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Mar 25 11:06:56 UTC 2014 - rguenther@suse.com + +- perl-5.18.2-overflow.diff: avoid undefined overflow in S_sv_2iuv_common + ------------------------------------------------------------------- Sat Jan 18 19:08:31 UTC 2014 - schwab@suse.de diff --git a/perl.spec b/perl.spec index 5919a55..004b520 100644 --- a/perl.spec +++ b/perl.spec @@ -41,6 +41,7 @@ Patch7: perl-db6.diff Patch8: skip_time_hires.patch Patch9: perl-incfix.diff Patch10: perl-threads.t-timeout.diff +Patch11: perl-5.18.2-overflow.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: perl-base = %version #PreReq: %fillup_prereq @@ -176,6 +177,7 @@ cp -p %{S:3} . %endif %patch9 %patch10 -p1 +%patch11 %build cp -a lib savelib