In perl.git, the branch blead has been updated <https://perl5.git.perl.org/perl.git/commitdiff/70747554497f9cb03e742ab188049b9d1e784020?hp=1568d13a11564a7d9d62aaf6a79b9b04172a2a45>
- Log ----------------------------------------------------------------- commit 70747554497f9cb03e742ab188049b9d1e784020 Author: Dagfinn Ilmari Mannsåker <[email protected]> Date: Wed Nov 8 20:25:56 2017 +0000 Fix sprintf multiconcat on 32bit big-endian systems with use64bitint The sprintf offset calculation was assigning to the 'uv' field of the aux union, while the code was reading from the 'size' field, which leads to all zeroes when sizeof(uv) > sizeof(size_t) on a big-endian system. ----------------------------------------------------------------------- Summary of changes: op.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/op.c b/op.c index 368f9b146e..15fe1afb0e 100644 --- a/op.c +++ b/op.c @@ -3095,14 +3095,14 @@ S_maybe_multiconcat(pTHX_ OP *o) if (*p == '%') { p++; if (*p != '%') { - (lenp++)->uv = q - oldq; + (lenp++)->size = q - oldq; oldq = q; continue; } } *q++ = *p; } - lenp->uv = q - oldq; + lenp->size = q - oldq; assert((STRLEN)(q - const_str) == total_len); /* Attach all the args (i.e. the kids of the sprintf) to o (which -- Perl5 Master Repository
