diff --git a/perl-5.8.7-bz172587.patch b/perl-5.8.7-bz172587.patch new file mode 100644 index 0000000..01b0d16 --- /dev/null +++ b/perl-5.8.7-bz172587.patch @@ -0,0 +1,114 @@ +--- perl-5.8.7/pp_sort.c.bz172587 2005-04-08 05:31:47.000000000 -0400 ++++ perl-5.8.7/pp_sort.c 2005-11-07 12:57:07.000000000 -0500 +@@ -1510,6 +1510,7 @@ + + if (gimme != G_ARRAY) { + SP = MARK; ++ EXTEND(SP,1); + RETPUSHUNDEF; + } + +--- perl-5.8.7/pp_hot.c.bz172587 2005-04-22 10:12:27.000000000 -0400 ++++ perl-5.8.7/pp_hot.c 2005-11-07 12:55:16.000000000 -0500 +@@ -639,12 +639,12 @@ + } + } + SP = ORIGMARK; +- PUSHs(&PL_sv_yes); ++ XPUSHs(&PL_sv_yes); + RETURN; + + just_say_no: + SP = ORIGMARK; +- PUSHs(&PL_sv_undef); ++ XPUSHs(&PL_sv_undef); + RETURN; + } + +--- perl-5.8.7/pp_sys.c.bz172587 2005-04-27 18:12:46.000000000 -0400 ++++ perl-5.8.7/pp_sys.c 2005-11-07 13:03:39.000000000 -0500 +@@ -429,13 +429,16 @@ + SV *tmpsv; + char *tmps; + STRLEN len; +- if (SP - MARK != 1) { ++ if (SP - MARK > 1) { + dTARGET; + do_join(TARG, &PL_sv_no, MARK, SP); + tmpsv = TARG; + SP = MARK + 1; +- } +- else { ++ } ++ else if (SP == MARK ) { ++ tmpsv = &PL_sv_no; ++ EXTEND(SP, 1); ++ } else { + tmpsv = TOPs; + } + tmps = SvPV(tmpsv, len); +@@ -3517,7 +3520,7 @@ + I32 value = (I32)apply(PL_op->op_type, MARK, SP); + + SP = MARK; +- PUSHi(value); ++ XPUSHi(value); + RETURN; + #else + DIE(aTHX_ PL_no_func, "chown"); +@@ -4127,7 +4130,7 @@ + if (errno != EAGAIN) { + value = -1; + SP = ORIGMARK; +- PUSHi(value); ++ XPUSHi(value); + if (did_pipes) { + PerlLIO_close(pp[0]); + PerlLIO_close(pp[1]); +@@ -4176,7 +4179,7 @@ + STATUS_CURRENT = -1; + } + } +- PUSHi(STATUS_CURRENT); ++ XPUSHi(STATUS_CURRENT); + RETURN; + } + if (did_pipes) { +@@ -4222,7 +4225,7 @@ + STATUS_NATIVE_SET(value); + do_execfree(); + SP = ORIGMARK; +- PUSHi(result ? value : STATUS_CURRENT); ++ XPUSHi(result ? value : STATUS_CURRENT); + #endif /* !FORK or VMS */ + RETURN; + } +@@ -4275,7 +4278,7 @@ + } + + SP = ORIGMARK; +- PUSHi(value); ++ XPUSHi(value); + RETURN; + } + +--- perl-5.8.7/pp.c.bz172587 2005-05-16 11:30:13.000000000 -0400 ++++ perl-5.8.7/pp.c 2005-11-07 12:56:32.000000000 -0500 +@@ -721,7 +721,7 @@ + while (MARK < SP) + do_chop(TARG, *++MARK); + SP = ORIGMARK; +- PUSHTARG; ++ XPUSHTARG; + RETURN; + } + +@@ -739,7 +739,7 @@ + + while (SP > MARK) + count += do_chomp(POPs); +- PUSHi(count); ++ XPUSHi(count); + RETURN; + } + diff --git a/perl.spec b/perl.spec index 2fbf7d3..91445cf 100644 --- a/perl.spec +++ b/perl.spec @@ -121,6 +121,9 @@ Patch172236: perl-5.8.7-bz172236.patch Patch25084: perl-5.8.7-25084.patch Patch172396: perl-5.8.7-172396.patch + +Patch172587: perl-5.8.7-bz172587.patch + # module updatesd # Patch202: perl-5.8.0-Safe2.09.patch @@ -277,6 +280,8 @@ more secure running of setuid perl scripts. %patch172396 -p1 +%patch172587 -p1 + # Candidates for doc recoding (need case by case review): # find . -name "*.pod" -o -name "README*" -o -name "*.pm" | xargs file -i | grep charset= | grep -v '\(us-ascii\|utf-8\)' recode() @@ -486,8 +491,11 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon Nov 07 2005 Jason Vas Dias - 3:5.8.7-0.7 +- fix bug 172587: apply upstream patches 26009, 26011 + * Thu Nov 03 2005 Jason Vas Dias - 3:5.8.7-0.7 -- fix bug 172396 : insert tzset() call before localtime_r() calls +- fix bug 172396 / upstream bug 26136: insert tzset() call before localtime_r() calls * Wed Nov 02 2005 Jason Vas Dias - 3:5.8.7-0.7 - fix bug 172336 / upstream bug 37056: reentr ERANGE realloc recursion