X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp_sys.c;h=4b9b0963d7fdeee37f06e7cb4b9c2b759b90cd8c;hb=158e3910f3d0bce487277fa0db25247b664ed87c;hp=2ec819133691228cef36f7b4b79fbab47b833b67;hpb=1d636c1300fabd70f4fb64de521c4e6cac694c53;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp_sys.c b/pp_sys.c index 2ec8191..4b9b096 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -1518,8 +1518,8 @@ PP(pp_sysread) Size_t got = 0; Size_t wanted; bool charstart = FALSE; - STRLEN skip; - STRLEN charskip; + STRLEN charskip = 0; + STRLEN skip = 0; gv = (GV*)*++MARK; if ((PL_op->op_type == OP_READ || PL_op->op_type == OP_SYSREAD) @@ -1568,6 +1568,7 @@ PP(pp_sysread) charstart = TRUE; charskip = 0; + skip = 0; #ifdef HAS_SOCKET if (PL_op->op_type == OP_RECV) { @@ -1862,6 +1863,8 @@ PP(pp_send) if (retval < 0) goto say_undef; SP = ORIGMARK; + if (DO_UTF8(bufsv)) + retval = utf8_length((U8*)buffer, (U8*)buffer + retval); #if Size_t_size > IVSIZE PUSHn(retval); #else @@ -3920,8 +3923,11 @@ PP(pp_fork) RETSETUNDEF; if (!childpid) { /*SUPPRESS 560*/ - if ((tmpgv = gv_fetchpv("$", TRUE, SVt_PV))) + if ((tmpgv = gv_fetchpv("$", TRUE, SVt_PV))) { + SvREADONLY_off(GvSV(tmpgv)); sv_setiv(GvSV(tmpgv), (IV)PerlProc_getpid()); + SvREADONLY_on(GvSV(tmpgv)); + } hv_clear(PL_pidstatus); /* no kids, so don't wait for 'em */ } PUSHi(childpid);