From 1a787b952b2a283c0366c148171c3bc150e9489a Mon Sep 17 00:00:00 2001 From: SADAHIRO Tomoyuki Date: Wed, 9 Nov 2005 11:12:00 +0900 Subject: Re: [perl #37616] Bug in &= (string) and/or m// Message-Id: <20051109021035.69D8.BQW10602@nifty.com> p4raw-id: //depot/perl@26136 --- doop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doop.c') diff --git a/doop.c b/doop.c index 8733816890..c23093caf0 100644 --- a/doop.c +++ b/doop.c @@ -1174,7 +1174,7 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right) } else if (SvOK(sv) || SvTYPE(sv) > SVt_PVMG) { dc = SvPV_force_nomg_nolen(sv); - if (SvCUR(sv) < (STRLEN)len) { + if (SvLEN(sv) < (STRLEN)(len + 1)) { dc = SvGROW(sv, (STRLEN)(len + 1)); (void)memzero(dc + SvCUR(sv), len - SvCUR(sv) + 1); } @@ -1303,6 +1303,7 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right) case OP_BIT_AND: while (len--) *dc++ = *lc++ & *rc++; + *dc = '\0'; break; case OP_BIT_XOR: while (len--) -- cgit v1.2.1