Author: stevehay Date: Thu Mar 14 09:25:34 2013 New Revision: 1456372 URL: http://svn.apache.org/r1456372 Log: On Perl 5.17.9, t/apache/read2.t fails because an "uninitialized value" warning is generated for the buffer being autovivified. This is because the sv_setpvn() that's meant to vivify the buffer doesn't perform set magic; the warning is generated by the immediately following SvPV_force(). Patch to fix this from rt.cpan.org #83922. [Zefram]
Modified: perl/modperl/trunk/Changes perl/modperl/trunk/xs/Apache2/RequestIO/Apache2__RequestIO.h Modified: perl/modperl/trunk/Changes URL: http://svn.apache.org/viewvc/perl/modperl/trunk/Changes?rev=1456372&r1=1456371&r2=1456372&view=diff ============================================================================== --- perl/modperl/trunk/Changes (original) +++ perl/modperl/trunk/Changes Thu Mar 14 09:25:34 2013 @@ -12,6 +12,12 @@ Also refer to the Apache::Test changes l =item 2.0.8-dev +On Perl 5.17.9, t/apache/read2.t fails because an "uninitialized value" +warning is generated for the buffer being autovivified. This is because +the sv_setpvn() that's meant to vivify the buffer doesn't perform set +magic; the warning is generated by the immediately following SvPV_force(). +Patch to fix this from rt.cpan.org #83922. [Zefram] + Fix t/perl/hash_attack.t to work with Perl 5.14.4, 5.16.3 etc, which contain a fix for CVE-2013-1667 (memory exhaustion with arbitrary hash keys). This resolves rt.perl.org #116863, from where the patch was taken. Modified: perl/modperl/trunk/xs/Apache2/RequestIO/Apache2__RequestIO.h URL: http://svn.apache.org/viewvc/perl/modperl/trunk/xs/Apache2/RequestIO/Apache2__RequestIO.h?rev=1456372&r1=1456371&r2=1456372&view=diff ============================================================================== --- perl/modperl/trunk/xs/Apache2/RequestIO/Apache2__RequestIO.h (original) +++ perl/modperl/trunk/xs/Apache2/RequestIO/Apache2__RequestIO.h Thu Mar 14 09:25:34 2013 @@ -227,6 +227,10 @@ apr_status_t mpxs_setup_client_block(req #define mpxs_should_client_block(r) \ (r->read_length || ap_should_client_block(r)) +#ifndef sv_setpvn_mg +# define sv_setpvn_mg sv_setpvn +#endif + /* alias */ #define mpxs_Apache2__RequestRec_READ(r, buffer, len, offset) \ mpxs_Apache2__RequestRec_read(aTHX_ r, buffer, len, offset) @@ -239,7 +243,7 @@ static SV *mpxs_Apache2__RequestRec_read STRLEN blen; if (!SvOK(buffer)) { - sv_setpvn(buffer, "", 0); + sv_setpvn_mg(buffer, "", 0); } (void)SvPV_force(buffer, blen); /* make it a valid PV */