Will the real off by one please stand up?
Abhijit Menon-Sen [Mon, 27 Oct 2003 09:00:08 +0000 (09:00 +0000)]
p4raw-id: //depot/perl@21546

mg.c

diff --git a/mg.c b/mg.c
index 95fc54d..245acd7 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -2400,10 +2400,11 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
 #endif
        /* PL_origalen is set in perl_parse(). */
        s = SvPV_force(sv,len);
-       if (len >= (STRLEN)PL_origalen) {
-           /* Longer than original, will be truncated. */
-           Copy(s, PL_origargv[0], PL_origalen, char);
-           PL_origargv[0][PL_origalen] = 0;
+       if (len >= (STRLEN)PL_origalen-1) {
+           /* Longer than original, will be truncated. We assume that
+             * PL_origalen bytes are available. */
+           Copy(s, PL_origargv[0], PL_origalen-1, char);
+           PL_origargv[0][PL_origalen-1] = 0;
        }
        else {
            /* Shorter than original, will be padded. */