Author: stevehay
Date: Mon Mar 18 01:59:22 2013
New Revision: 1457618

URL: http://svn.apache.org/r1457618
Log:
On Perl 5.17.6 and above, hash seeding has changed, and HvREHASH has 
disappeared.
Patch to update mod_perl accordingly from rt.cpan.org #83921. [Zefram]

Modified:
    perl/modperl/trunk/Changes
    perl/modperl/trunk/src/modules/perl/modperl_perl.c
    perl/modperl/trunk/t/perl/hash_attack.t

Modified: perl/modperl/trunk/Changes
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/Changes?rev=1457618&r1=1457617&r2=1457618&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Mon Mar 18 01:59:22 2013
@@ -12,6 +12,10 @@ Also refer to the Apache::Test changes l
 
 =item 2.0.8-dev
 
+On Perl 5.17.6 and above, hash seeding has changed, and HvREHASH has
+disappeared. Patch to update mod_perl accordingly from rt.cpan.org #83921.
+[Zefram]
+
 Restore build with Perl 5.8.1, 5.8.2 etc: take care to use
 $Config{useithreads} rather than $Config{usethreads}, and supply definitions
 of Newx and Newxz as necessary. [Steve Hay]

Modified: perl/modperl/trunk/src/modules/perl/modperl_perl.c
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_perl.c?rev=1457618&r1=1457617&r2=1457618&view=diff
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_perl.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_perl.c Mon Mar 18 01:59:22 2013
@@ -265,12 +265,17 @@ void modperl_hash_seed_set(pTHX)
 {
 #ifdef MP_NEED_HASH_SEED_FIXUP
     if (MP_init_hash_seed_set) {
-#if MP_PERL_VERSION(5, 8, 1)
-        PL_hash_seed       = MP_init_hash_seed;
+#if MP_PERL_VERSION_AT_LEAST(5, 17, 6)
+        memcpy(&PL_hash_seed, &MP_init_hash_seed,
+                sizeof(PL_hash_seed) > sizeof(MP_init_hash_seed) ?
+                    sizeof(MP_init_hash_seed) : sizeof(PL_hash_seed));
         PL_hash_seed_set   = MP_init_hash_seed_set;
-#else
+#elif MP_PERL_VERSION_AT_LEAST(5, 8, 2)
         PL_rehash_seed     = MP_init_hash_seed;
         PL_rehash_seed_set = MP_init_hash_seed_set;
+#else
+        PL_hash_seed       = MP_init_hash_seed;
+        PL_hash_seed_set   = MP_init_hash_seed_set;
 #endif
     }
 #endif

Modified: perl/modperl/trunk/t/perl/hash_attack.t
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/t/perl/hash_attack.t?rev=1457618&r1=1457617&r2=1457618&view=diff
==============================================================================
--- perl/modperl/trunk/t/perl/hash_attack.t (original)
+++ perl/modperl/trunk/t/perl/hash_attack.t Mon Mar 18 01:59:22 2013
@@ -8,7 +8,7 @@ use Apache::TestTrace;
 use Apache::TestRequest 'GET_BODY_ASSERT';
 
 plan tests => 1,
-    need { "relevant only for perl 5.8.2 and higher" => ($] >= 5.008002) };
+    need { "relevant only for perl 5.8.2 and up to 5.17.6" => ($] >= 5.008002 
&& $] < 5.017006) };
 
 my $expected = "ok";
 my $received = GET_BODY_ASSERT "/TestPerl__hash_attack";


Reply via email to