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