summaryrefslogtreecommitdiff
path: root/pp_sys.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2004-03-09 16:11:37 +0000
committerNicholas Clark <nick@ccl4.org>2004-03-09 16:11:37 +0000
commit6aa2f6a7a4e2a0d061a689b227dcf063d93806a6 (patch)
treeb1cdce1b0005b1331cebe2ac1c775d48ea999b01 /pp_sys.c
parent821bf9a5d89e1fc44be0165540e1f57de5c874e1 (diff)
downloadperl-6aa2f6a7a4e2a0d061a689b227dcf063d93806a6.tar.gz
Make a temporary copy of the input buffer in pp_send, so that send
and syswrite don't gratuitously upgrade their input to UTF8 p4raw-id: //depot/perl@22471
Diffstat (limited to 'pp_sys.c')
-rw-r--r--pp_sys.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pp_sys.c b/pp_sys.c
index d6f095b3c9..ebc85d3331 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1820,7 +1820,11 @@ PP(pp_send)
}
if (PerlIO_isutf8(IoIFP(io))) {
- buffer = SvPVutf8(bufsv, blen);
+ if (!SvUTF8(bufsv)) {
+ bufsv = sv_2mortal(newSVsv(bufsv));
+ buffer = sv_2pvutf8(bufsv, &blen);
+ } else
+ buffer = SvPV(bufsv, blen);
}
else {
if (DO_UTF8(bufsv)) {