mirror of
https://git.yoctoproject.org/poky
synced 2026-07-17 16:17:02 +00:00
perl: update to 5.30.1
Drop fix-setgroup.patch as the upstream has fixed the issue. (From OE-Core rev: df86f5d32dc18f25c5c4788b65cceae8905a6ef3) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 45edc6d23e20f7634c50db71e419c7e3bb7f393e) [Bug fix only update] Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
60ec9f2634
commit
db2edbf58c
@@ -1,49 +0,0 @@
|
||||
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 {
|
||||
Reference in New Issue
Block a user