In perl.git, the branch blead has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/81b3f640bb2856350fe6a5efe32056accab1d775?hp=10417d4775a08e4e3438d6f298f69b6ada5e2fea>

- Log -----------------------------------------------------------------
commit 81b3f640bb2856350fe6a5efe32056accab1d775
Author: Karl Williamson <[email protected]>
Date:   Mon Jan 22 12:45:14 2018 -0700

    Allow space for NUL is UTF-8 array decls
    
    In grepping the source, I noticed that several arrays that are for
    holding UTF-8 characters did not allow space for a trailing NUL.  This
    commit adds that.

-----------------------------------------------------------------------

Summary of changes:
 ext/XS-APItest/APItest.pm | 2 +-
 ext/XS-APItest/APItest.xs | 2 +-
 pp_pack.c                 | 4 ++--
 regcomp.c                 | 4 ++--
 toke.c                    | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/ext/XS-APItest/APItest.pm b/ext/XS-APItest/APItest.pm
index e30838ae3b..8eda0f7a02 100644
--- a/ext/XS-APItest/APItest.pm
+++ b/ext/XS-APItest/APItest.pm
@@ -5,7 +5,7 @@ use strict;
 use warnings;
 use Carp;
 
-our $VERSION = '0.95';
+our $VERSION = '0.96';
 
 require XSLoader;
 
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs
index 144d62488d..0ad08237af 100644
--- a/ext/XS-APItest/APItest.xs
+++ b/ext/XS-APItest/APItest.xs
@@ -1452,7 +1452,7 @@ test_uvchr_to_utf8_flags(uv, flags)
         SV *uv
         SV *flags
     PREINIT:
-        U8 dest[UTF8_MAXBYTES];
+        U8 dest[UTF8_MAXBYTES + 1];
         U8 *ret;
 
     CODE:
diff --git a/pp_pack.c b/pp_pack.c
index 24cdee9714..8937d6d715 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -1288,7 +1288,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, 
const char *strbeg, const c
                STRLEN retlen;
                UV auv;
                if (utf8) {
-                   U8 result[UTF8_MAXLEN];
+                   U8 result[UTF8_MAXLEN+1];
                    const char *ptr = s;
                    STRLEN len;
                    /* Bug: warns about bad utf8 even if we are short on bytes
@@ -2643,7 +2643,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV 
**beglist, SV **endlist )
                fromstr = NEXTFROM;
                auv = SvUV_no_inf(fromstr, datumtype);
                if (utf8) {
-                   U8 buffer[UTF8_MAXLEN], *endb;
+                   U8 buffer[UTF8_MAXLEN+1], *endb;
                    endb = uvchr_to_utf8_flags(buffer, UNI_TO_NATIVE(auv), 0);
                    if (cur+(endb-buffer)*UTF8_EXPAND >= end) {
                        *cur = '\0';
diff --git a/regcomp.c b/regcomp.c
index 54f9fad0ff..d0952cb48f 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -13267,7 +13267,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, 
U32 depth)
            char *p;
            char *s;
 #define MAX_NODE_STRING_SIZE 127
-           char foldbuf[MAX_NODE_STRING_SIZE+UTF8_MAXBYTES_CASE];
+           char foldbuf[MAX_NODE_STRING_SIZE+UTF8_MAXBYTES_CASE+1];
            char *s0;
            U8 upper_parse = MAX_NODE_STRING_SIZE;
             U8 node_type = compute_EXACTish(pRExC_state);
@@ -17013,7 +17013,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, 
U32 depth,
             {
                 /* Here <value> is indeed a multi-char fold.  Get what it is */
 
-                U8 foldbuf[UTF8_MAXBYTES_CASE];
+                U8 foldbuf[UTF8_MAXBYTES_CASE+1];
                 STRLEN foldlen;
 
                 UV folded = _to_uni_fold_flags(
diff --git a/toke.c b/toke.c
index 6e2742742a..5959bc3e9e 100644
--- a/toke.c
+++ b/toke.c
@@ -10563,7 +10563,7 @@ S_scan_str(pTHX_ char *start, int 
keep_bracketed_quoted, int keep_delims, int re
     I32 brackets = 1;          /* bracket nesting level */
     bool has_utf8 = FALSE;     /* is there any utf8 content? */
     IV termcode;               /* terminating char. code */
-    U8 termstr[UTF8_MAXBYTES]; /* terminating string */
+    U8 termstr[UTF8_MAXBYTES+1]; /* terminating string */
     STRLEN termlen;            /* length of terminating string */
     line_t herelines;
 

-- 
Perl5 Master Repository

Reply via email to