mirror of
https://git.yoctoproject.org/poky
synced 2026-02-23 09:59:39 +01:00
This was moved during the perl cleanup, it can/should be moved back now as its confusing too many people. (From OE-Core rev: ce69c21707aa19ab8a3f6c07dc5a560671ab53a4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
50 lines
1.5 KiB
Diff
50 lines
1.5 KiB
Diff
Test script to reproduce the problem:
|
|
|
|
#!/usr/bin/env perl
|
|
$) = "2 2";
|
|
print $!;
|
|
|
|
Result from perl 5.28 under strace:
|
|
|
|
setgroups(1, [2]) = 0
|
|
setresgid(-1, 2, -1) = 0
|
|
|
|
Result from perl 5.30 under strace:
|
|
|
|
setgroups(1, [-1]) = -1 EINVAL (Invalid argument)
|
|
setresgid(-1, 2, -1) = 0
|
|
|
|
Patch which broke this upstream:
|
|
https://perl5.git.perl.org/perl.git/commitdiff/5d4a52b5c68a11bfc97c2e24806993b84a61eade
|
|
|
|
Issue is that the new function changes the endptr to the end of the
|
|
scanned number and needs to be reset to the end of the string for
|
|
each iteration of the loop.
|
|
|
|
[YOCTO #13391]
|
|
|
|
RP
|
|
2019/6/14
|
|
Upstream-Status: Pending
|
|
|
|
Index: perl-5.30.0/mg.c
|
|
===================================================================
|
|
--- perl-5.30.0.orig/mg.c
|
|
+++ perl-5.30.0/mg.c
|
|
@@ -3179,6 +3256,7 @@ 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* realend = p + len;
|
|
UV uv;
|
|
#ifdef _SC_NGROUPS_MAX
|
|
int maxgrp = sysconf(_SC_NGROUPS_MAX);
|
|
@@ -3209,6 +3287,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
|
|
Newx(gary, i + 1, Groups_t);
|
|
else
|
|
Renew(gary, i + 1, Groups_t);
|
|
+ endptr = realend;
|
|
if (grok_atoUV(p, &uv, &endptr))
|
|
gary[i] = (Groups_t)uv;
|
|
else {
|