From 4fe915fb80c78fa98164942ad75f29f44400898d Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Thu, 13 Jun 2019 15:14:40 +1000 Subject: (perl #134194) fix parsing supplemental groups from $) For example, if parsing the second number from: "123 456 789" endptr would be left pointing at the first space, while we try to start parsing at the "4", which grok_atoUV() would reject. --- mg.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mg.c b/mg.c index f4783fb68a..db831d8e86 100644 --- a/mg.c +++ b/mg.c @@ -3178,7 +3178,8 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) { const char *p = SvPV_const(sv, len); Groups_t *gary = NULL; - const char* endptr = p + len; + const char * const end = p + len; + const char* endptr = end; UV uv; #ifdef _SC_NGROUPS_MAX int maxgrp = sysconf(_SC_NGROUPS_MAX); @@ -3209,6 +3210,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) Newx(gary, i + 1, Groups_t); else Renew(gary, i + 1, Groups_t); + endptr = end; if (grok_atoUV(p, &uv, &endptr)) gary[i] = (Groups_t)uv; else { -- 2.11.0