From c286e6d3aa2ecfc311027427c95607ceccb85fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Tue, 27 Sep 2016 15:56:59 +0200 Subject: [PATCH 1/2] Deal with certain tiedscalars (e.g. created by Readonly::XS) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream commit: changeset: 480:efb44fbc6bd8 user: John Peacock date: Sat Feb 01 13:30:16 2014 -0500 summary: Deal with certain tiedscalars (e.g. created by Readonly::XS). ported from 0.9908 to 0.9907. This is necessary to accept tainted input on perl older than 5.17.2. Signed-off-by: Petr Písař --- vutil/vutil.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/vutil/vutil.c b/vutil/vutil.c index 7979c49..c5edb10 100644 --- a/vutil/vutil.c +++ b/vutil/vutil.c @@ -555,7 +555,11 @@ Perl_upg_version(pTHX_ SV *ver, bool qv) PERL_ARGS_ASSERT_UPG_VERSION; - if ( SvNOK(ver) && !( SvPOK(ver) && SvCUR(ver) == 3 ) ) + if ( ( SvNOK(ver) +#if PERL_VERSION_LT(5,17,2) + || (SvTYPE(ver) == SVt_PVMG && SvNOKp(ver)) +#endif + ) && !( SvPOK(ver) && SvCUR(ver) == 3 ) ) { STRLEN len; @@ -602,7 +606,11 @@ Perl_upg_version(pTHX_ SV *ver, bool qv) version = savesvpv(ver); SAVEFREEPV(version); } - else if ( SvPOK(ver) )/* must be a string or something like a string */ + else if ( SvPOK(ver) +#if PERL_VERSION_LT(5,17,2) + || (SvTYPE(ver) == SVt_PVMG && SvPOKp(ver)) +#endif + )/* must be a string or something like a string */ { STRLEN len; version = savepvn(SvPV(ver,len), SvCUR(ver)); -- 2.7.4