summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorSADAHIRO Tomoyuki <BQW10602@nifty.com>2004-05-23 06:38:33 +0900
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-05-24 15:55:23 +0000
commitf5cee72b6610421c22d816640f267c5b45b0450e (patch)
tree58695bdf88b1996c5c40a1d59e4ec0f9ac8759b7 /sv.c
parent11bb82ff512c271f628b999a239bbb2982d80a99 (diff)
downloadperl-f5cee72b6610421c22d816640f267c5b45b0450e.tar.gz
Re: utf-8 and taint don't work together
Date: Sat, 22 May 2004 21:38:33 +0900 Message-Id: <20040522212704.C068.BQW10602@nifty.com> Date: Sun, 23 May 2004 09:56:15 +0900 Message-Id: <20040523095609.E404.BQW10602@nifty.com> p4raw-id: //depot/perl@22842
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sv.c b/sv.c
index d776e15e6d..ab21d765df 100644
--- a/sv.c
+++ b/sv.c
@@ -3936,18 +3936,15 @@ Perl_sv_utf8_upgrade_flags(pTHX_ register SV *sv, I32 flags)
U8 *s, *t, *e;
int hibit = 0;
- if (!sv)
- return 0;
-
if (!SvPOK(sv)) {
STRLEN len = 0;
- (void) sv_2pv_flags(sv,&len, flags);
- if (!SvPOK(sv))
- return len;
+ (void) SvPV_force(sv,len);
}
- if (SvUTF8(sv))
+ if (SvUTF8(sv)) {
+ SvSETMAGIC(sv);
return SvCUR(sv);
+ }
if (SvIsCOW(sv)) {
sv_force_normal_flags(sv, 0);
@@ -3982,6 +3979,7 @@ Perl_sv_utf8_upgrade_flags(pTHX_ register SV *sv, I32 flags)
/* Mark as UTF-8 even if no hibit - saves scanning loop */
SvUTF8_on(sv);
}
+ SvSETMAGIC(sv);
return SvCUR(sv);
}