Compare commits
28 Commits
master
...
openEuler-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
087840e7bf | ||
|
|
2b33d96e0a | ||
|
|
a737dccf85 | ||
|
|
1e1229f914 | ||
|
|
bb3d3ef271 | ||
|
|
7bc8c72e25 | ||
|
|
76689db267 | ||
|
|
44d9bf5bca | ||
|
|
71c7b37917 | ||
|
|
f38118c5ef | ||
|
|
c76a496118 | ||
|
|
c8fc1484cf | ||
|
|
fcd57b3f95 | ||
|
|
141b5b0cff | ||
|
|
4bcebe8c1e | ||
|
|
da21c6b088 | ||
|
|
906f16dd4b | ||
|
|
57251b26ce | ||
|
|
62aa2c02a9 | ||
|
|
10181a858c | ||
|
|
598e7bc6ac | ||
|
|
39e34e72d5 | ||
|
|
d52e7ae493 | ||
|
|
b0633db262 | ||
|
|
34ad703dbe | ||
|
|
724835d47a | ||
|
|
fc1093bfa5 | ||
|
|
df33e5a74f |
67
backport-CVE-2021-36770.patch
Normal file
67
backport-CVE-2021-36770.patch
Normal file
@ -0,0 +1,67 @@
|
||||
From 527e482dc70b035d0df4f8c77a00d81f8d775c74 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Kogai <dankogai+github@gmail.com>
|
||||
Date: Mon, 9 Aug 2021 23:19:25 +0900
|
||||
Subject: [PATCH] version 3.12 to address CVE-2021-36770
|
||||
|
||||
---
|
||||
cpan/Encode/Encode.pm | 8 ++++----
|
||||
cpan/Encode/Unicode/Unicode.xs | 2 +-
|
||||
cpan/Encode/t/Unicode.t | 2 +-
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm
|
||||
index d3eb3c1..769439c 100644
|
||||
--- a/cpan/Encode/Encode.pm
|
||||
+++ b/cpan/Encode/Encode.pm
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
-# $Id: Encode.pm,v 3.08 2020/12/02 01:27:44 dankogai Exp $
|
||||
+# $Id: Encode.pm,v 3.12 2021/08/09 14:17:04 dankogai Exp dankogai $
|
||||
#
|
||||
package Encode;
|
||||
use strict;
|
||||
@@ -7,7 +7,7 @@ use warnings;
|
||||
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
|
||||
our $VERSION;
|
||||
BEGIN {
|
||||
- $VERSION = sprintf "%d.%02d", q$Revision: 3.08 $ =~ /(\d+)/g;
|
||||
+ $VERSION = sprintf "%d.%02d", q$Revision: 3.12 $ =~ /(\d+)/g;
|
||||
require XSLoader;
|
||||
XSLoader::load( __PACKAGE__, $VERSION );
|
||||
}
|
||||
@@ -65,8 +65,8 @@ require Encode::Config;
|
||||
eval {
|
||||
local $SIG{__DIE__};
|
||||
local $SIG{__WARN__};
|
||||
- local @INC = @INC || ();
|
||||
- pop @INC if $INC[-1] eq '.';
|
||||
+ local @INC = @INC;
|
||||
+ pop @INC if @INC && $INC[-1] eq '.';
|
||||
require Encode::ConfigLocal;
|
||||
};
|
||||
|
||||
diff --git a/cpan/Encode/Unicode/Unicode.xs b/cpan/Encode/Unicode/Unicode.xs
|
||||
index 4e111e2..18c783f 100644
|
||||
--- a/cpan/Encode/Unicode/Unicode.xs
|
||||
+++ b/cpan/Encode/Unicode/Unicode.xs
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- $Id: Unicode.xs,v 2.19 2019/01/21 03:09:59 dankogai Exp $
|
||||
+ $Id: Unicode.xs,v 2.20 2021/07/23 02:26:54 dankogai Exp $
|
||||
*/
|
||||
|
||||
#define IN_UNICODE_XS
|
||||
diff --git a/cpan/Encode/t/Unicode.t b/cpan/Encode/t/Unicode.t
|
||||
index 2cc5d54..9e2bcbe 100644
|
||||
--- a/cpan/Encode/t/Unicode.t
|
||||
+++ b/cpan/Encode/t/Unicode.t
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
-# $Id: Unicode.t,v 2.3 2012/08/05 23:08:49 dankogai Exp $
|
||||
+# $Id: Unicode.t,v 2.4 2021/07/23 02:26:54 dankogai Exp $
|
||||
#
|
||||
# This script is written entirely in ASCII, even though quoted literals
|
||||
# do include non-BMP unicode characters -- Are you happy, jhi?
|
||||
--
|
||||
2.27.0
|
||||
|
||||
78
backport-CVE-2022-48522.patch
Normal file
78
backport-CVE-2022-48522.patch
Normal file
@ -0,0 +1,78 @@
|
||||
From 43cbd598f60a85afcfc3de71e89e8a48330158f5 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Cook <tony@develop-help.com>
|
||||
Date: Wed, 22 Sep 2021 11:47:55 +1000
|
||||
Subject: [PATCH] Don't try to Sv[PI]V() on an undef index SV in
|
||||
find_uninit_var()
|
||||
|
||||
When trying to evaluate:
|
||||
|
||||
$x{$y}
|
||||
|
||||
or
|
||||
|
||||
$x[$y]
|
||||
|
||||
where both the index and the hash or array entry was undefined,
|
||||
when trying to report the entry as uninitialised, find_uninit_var()
|
||||
would try to get the string or numeric value of the index,
|
||||
recursively trying to produce a warning.
|
||||
|
||||
This would end up overflowing the stack, producing a segmentation fault.
|
||||
|
||||
Fixes #19147.
|
||||
|
||||
(cherry picked from commit 23cca2d1f4544cb47f1124d98c308ce1f31f09a6)
|
||||
Conflict:NA
|
||||
Reference:https://github.com/Perl/perl5/commit/43cbd598f60a85afcfc3de71e89e8a48330158f5
|
||||
---
|
||||
sv.c | 7 ++++---
|
||||
t/lib/warnings/sv | 13 +++++++++++++
|
||||
2 files changed, 17 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/sv.c b/sv.c
|
||||
index 27c425a54e6f..46bf9815cd15 100644
|
||||
--- a/sv.c
|
||||
+++ b/sv.c
|
||||
@@ -16782,14 +16782,15 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
|
||||
}
|
||||
if (index_sv && !SvMAGICAL(index_sv) && !SvROK(index_sv)) {
|
||||
if (is_hv) {
|
||||
- HE *he = hv_fetch_ent(MUTABLE_HV(sv), index_sv, 0, 0);
|
||||
+ SV *report_index_sv = SvOK(index_sv) ? index_sv : &PL_sv_no;
|
||||
+ HE *he = hv_fetch_ent(MUTABLE_HV(sv), report_index_sv, 0, 0);
|
||||
if (!he) {
|
||||
return varname(agg_gv, '%', agg_targ,
|
||||
- index_sv, 0, FUV_SUBSCRIPT_HASH);
|
||||
+ report_index_sv, 0, FUV_SUBSCRIPT_HASH);
|
||||
}
|
||||
}
|
||||
else {
|
||||
- SSize_t index = SvIV(index_sv);
|
||||
+ SSize_t index = SvOK(index_sv) ? SvIV(index_sv) : 0;
|
||||
SV * const * const svp =
|
||||
av_fetch(MUTABLE_AV(sv), index, FALSE);
|
||||
if (!svp) {
|
||||
diff --git a/t/lib/warnings/sv b/t/lib/warnings/sv
|
||||
index be04b8457e3a..8524c2c25a1d 100644
|
||||
--- a/t/lib/warnings/sv
|
||||
+++ b/t/lib/warnings/sv
|
||||
@@ -211,6 +211,19 @@ Use of uninitialized value $a in join or string at - line 4.
|
||||
Use of uninitialized value $a in concatenation (.) or string at - line 5.
|
||||
Use of uninitialized value $a in concatenation (.) or string at - line 6.
|
||||
########
|
||||
+# NAME https://github.com/Perl/perl5/issues/19147
|
||||
+use warnings 'uninitialized';
|
||||
+my %x;
|
||||
+my @z;
|
||||
+my $y;
|
||||
+-$x{$y};
|
||||
+-$z[$y];
|
||||
+EXPECT
|
||||
+Use of uninitialized value $y in hash element at - line 5.
|
||||
+Use of uninitialized value $x{""} in negation (-) at - line 5.
|
||||
+Use of uninitialized value $y in array element at - line 6.
|
||||
+Use of uninitialized value $z[0] in negation (-) at - line 6.
|
||||
+########
|
||||
# sv.c
|
||||
use warnings 'numeric' ;
|
||||
sub TIESCALAR{bless[]} ;
|
||||
25
backport-CVE-2023-31484.patch
Normal file
25
backport-CVE-2023-31484.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 9c98370287f4e709924aee7c58ef21c85289a7f0 Mon Sep 17 00:00:00 2001
|
||||
From: Stig Palmquist <git@stig.io>
|
||||
Date: Tue, 28 Feb 2023 11:54:06 +0100
|
||||
Subject: [PATCH] Add verify_SSL=>1 to HTTP::Tiny to verify https server
|
||||
identity
|
||||
|
||||
---
|
||||
cpan/CPAN/lib/CPAN/HTTP/Client.pm | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/cpan/CPAN/lib/CPAN/HTTP/Client.pm b/cpan/CPAN/lib/CPAN/HTTP/Client.pm
|
||||
index 4fc792c..a616fee 100644
|
||||
--- a/cpan/CPAN/lib/CPAN/HTTP/Client.pm
|
||||
+++ b/cpan/CPAN/lib/CPAN/HTTP/Client.pm
|
||||
@@ -32,6 +32,7 @@ sub mirror {
|
||||
|
||||
my $want_proxy = $self->_want_proxy($uri);
|
||||
my $http = HTTP::Tiny->new(
|
||||
+ verify_SSL => 1,
|
||||
$want_proxy ? (proxy => $self->{proxy}) : ()
|
||||
);
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
84
backport-CVE-2023-31486.patch
Normal file
84
backport-CVE-2023-31486.patch
Normal file
@ -0,0 +1,84 @@
|
||||
From 1490431e40e22052f75a0b3449f1f53cbd27ba92 Mon Sep 17 00:00:00 2001
|
||||
From: Dominic Hargreaves <dom@earth.li>
|
||||
Date: Thu, 21 May 2020 22:53:37 +0100
|
||||
Subject: [PATCH] Enable SSL by default in HTTP::Tiny
|
||||
|
||||
HTTP::Tiny 0.082, a Perl core module since 5.13.9 and available standalone on CPAN,
|
||||
has an insecure default TLS configuration where users must opt in to verify certificates.
|
||||
|
||||
Reference: https://salsa.debian.org/perl-team/interpreter/perl/-/commit/1490431e40e22052f75a0b3449f1f53cbd27ba92.patch
|
||||
Conflict:NA
|
||||
---
|
||||
cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 20 +++++++++-----------
|
||||
1 file changed, 9 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
index 5803e4599f01..5970b6e225f3 100644
|
||||
--- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
+++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
@@ -40,7 +40,7 @@ sub _croak { require Carp; Carp::croak(@_) }
|
||||
#pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open,
|
||||
#pod read or write takes longer than the timeout, an exception is thrown.
|
||||
#pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL
|
||||
-#pod certificate of an C<https> — connection (default is false)
|
||||
+#pod certificate of an C<https> — connection (default is true)
|
||||
#pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to
|
||||
#pod L<IO::Socket::SSL>
|
||||
#pod
|
||||
@@ -112,7 +112,7 @@ sub new {
|
||||
max_redirect => 5,
|
||||
timeout => defined $args{timeout} ? $args{timeout} : 60,
|
||||
keep_alive => 1,
|
||||
- verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default
|
||||
+ verify_SSL => $args{verify_SSL} // $args{verify_ssl} // 1, # verification by default
|
||||
no_proxy => $ENV{no_proxy},
|
||||
};
|
||||
|
||||
@@ -1038,7 +1038,7 @@ sub new {
|
||||
timeout => 60,
|
||||
max_line_size => 16384,
|
||||
max_header_lines => 64,
|
||||
- verify_SSL => 0,
|
||||
+ verify_SSL => 1,
|
||||
SSL_options => {},
|
||||
%args
|
||||
}, $class;
|
||||
@@ -1765,7 +1765,7 @@ C<timeout> — Request timeout in seconds (default is 60) If a socket open, read
|
||||
|
||||
=item *
|
||||
|
||||
-C<verify_SSL> — A boolean that indicates whether to validate the SSL certificate of an C<https> — connection (default is false)
|
||||
+C<verify_SSL> — A boolean that indicates whether to validate the SSL certificate of an C<https> — connection (default is true)
|
||||
|
||||
=item *
|
||||
|
||||
@@ -2035,7 +2035,7 @@ Verification of server identity
|
||||
|
||||
=back
|
||||
|
||||
-B<By default, HTTP::Tiny does not verify server identity>.
|
||||
+B<By default, HTTP::Tiny verifies server identity>.
|
||||
|
||||
Server identity verification is controversial and potentially tricky because it
|
||||
depends on a (usually paid) third-party Certificate Authority (CA) trust model
|
||||
@@ -2043,16 +2043,14 @@ to validate a certificate as legitimate. This discriminates against servers
|
||||
with self-signed certificates or certificates signed by free, community-driven
|
||||
CA's such as L<CAcert.org|http://cacert.org>.
|
||||
|
||||
-By default, HTTP::Tiny does not make any assumptions about your trust model,
|
||||
-threat level or risk tolerance. It just aims to give you an encrypted channel
|
||||
-when you need one.
|
||||
-
|
||||
Setting the C<verify_SSL> attribute to a true value will make HTTP::Tiny verify
|
||||
that an SSL connection has a valid SSL certificate corresponding to the host
|
||||
name of the connection and that the SSL certificate has been verified by a CA.
|
||||
Assuming you trust the CA, this will protect against a L<man-in-the-middle
|
||||
-attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. If you are
|
||||
-concerned about security, you should enable this option.
|
||||
+attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>.
|
||||
+
|
||||
+If you are not concerned about security, and this default causes
|
||||
+problems, you should disable this option.
|
||||
|
||||
Certificate verification requires a file containing trusted CA certificates.
|
||||
|
||||
200
backport-CVE-2023-47039.patch
Normal file
200
backport-CVE-2023-47039.patch
Normal file
@ -0,0 +1,200 @@
|
||||
From 906e92715f4ee68ea95086867f4f97b1f4f10ac3 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Cook <tony@develop-help.com>
|
||||
Date: Tue, 3 Oct 2023 09:40:07 +1100
|
||||
Subject: [PATCH] win32: default the shell to cmd.exe in the Windows system
|
||||
directory
|
||||
|
||||
This prevents picking up cmd.exe from the current directory, or
|
||||
even from the PATH.
|
||||
|
||||
This protects against a privilege escalation attack where an attacker
|
||||
in a separate session creates a cmd.exe in a directory where the
|
||||
target account happens to have its current directory.
|
||||
|
||||
Reference:https://github.com/Perl/perl5/commit/906e92715f4ee68ea95086867f4f97b1f4f10ac3
|
||||
Conflict:Context adaptation
|
||||
|
||||
---
|
||||
t/win32/system.t | 30 ++++++++++++--------
|
||||
win32/win32.c | 71 +++++++++++++++++++++++++++++++++++++++++-------
|
||||
2 files changed, 79 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/t/win32/system.t b/t/win32/system.t
|
||||
index 939a02db55..c885059012 100644
|
||||
--- a/t/win32/system.t
|
||||
+++ b/t/win32/system.t
|
||||
@@ -82,6 +82,7 @@ close $F;
|
||||
chdir($testdir);
|
||||
END {
|
||||
chdir($cwd) && rmtree("$cwd/$testdir") if -d "$cwd/$testdir";
|
||||
+ unlink "cmd.exe";
|
||||
}
|
||||
if (open(my $EIN, "$cwd/win32/${exename}_exe.uu")) {
|
||||
note "Unpacking $exename.exe";
|
||||
@@ -104,21 +105,20 @@ else {
|
||||
}
|
||||
note "Compiling $exename.c";
|
||||
note "$Config{cc} $Config{ccflags} $exename.c";
|
||||
- if (system("$Config{cc} $Config{ccflags} $minus_o $exename.c >log 2>&1") != 0) {
|
||||
+ if (system("$Config{cc} $Config{ccflags} $minus_o $exename.c >log 2>&1") != 0 ||
|
||||
+ !-f "$exename.exe") {
|
||||
note "Could not compile $exename.c, status $?";
|
||||
- note "Where is your C compiler?";
|
||||
- skip_all "can't build test executable";
|
||||
- }
|
||||
- unless (-f "$exename.exe") {
|
||||
- if (open(LOG,'<log'))
|
||||
- {
|
||||
- while(<LOG>) {
|
||||
- note $_;
|
||||
- }
|
||||
- }
|
||||
+ note "Where is your C compiler?";
|
||||
+ if (open(LOG,'<log'))
|
||||
+ {
|
||||
+ while(<LOG>) {
|
||||
+ note $_;
|
||||
+ }
|
||||
+ }
|
||||
else {
|
||||
- warn "Cannot open log (in $testdir):$!";
|
||||
+ warn "Cannot open log (in $testdir):$!";
|
||||
}
|
||||
+ skip_all "can't build test executable";
|
||||
}
|
||||
}
|
||||
copy("$plxname.bat","$plxname.cmd");
|
||||
@@ -128,6 +128,12 @@ unless (-x "$testdir/$exename.exe") {
|
||||
skip_all "can't build test executable";
|
||||
}
|
||||
|
||||
+# test we only look for cmd.exe in the standard place
|
||||
+delete $ENV{PERLSHELL};
|
||||
+copy("$testdir/$exename.exe", "$testdir/cmd.exe") or die $!;
|
||||
+copy("$testdir/$exename.exe", "cmd.exe") or die $!;
|
||||
+$ENV{PATH} = qq("$testdir";$ENV{PATH});
|
||||
+
|
||||
open my $T, "$^X -I../lib -w win32/system_tests |"
|
||||
or die "Can't spawn win32/system_tests: $!";
|
||||
my $expect;
|
||||
diff --git a/win32/win32.c b/win32/win32.c
|
||||
index 94248ca168..5d54cf8d4a 100644
|
||||
--- a/win32/win32.c
|
||||
+++ b/win32/win32.c
|
||||
@@ -117,7 +117,7 @@ static char* win32_get_xlib(const char *pl,
|
||||
|
||||
static BOOL has_shell_metachars(const char *ptr);
|
||||
static long tokenize(const char *str, char **dest, char ***destv);
|
||||
-static void get_shell(void);
|
||||
+static int get_shell(void);
|
||||
static char* find_next_space(const char *s);
|
||||
static int do_spawn2(pTHX_ const char *cmd, int exectype);
|
||||
static int do_spawn2_handles(pTHX_ const char *cmd, int exectype,
|
||||
@@ -600,7 +600,13 @@ tokenize(const char *str, char **dest, char ***destv)
|
||||
return items;
|
||||
}
|
||||
|
||||
-static void
|
||||
+static const char
|
||||
+cmd_opts[] = "/x/d/c";
|
||||
+
|
||||
+static const char
|
||||
+shell_cmd[] = "cmd.exe";
|
||||
+
|
||||
+static int
|
||||
get_shell(void)
|
||||
{
|
||||
dTHX;
|
||||
@@ -612,12 +618,53 @@ get_shell(void)
|
||||
* interactive use (which is what most programs look in COMSPEC
|
||||
* for).
|
||||
*/
|
||||
- const char* defaultshell = "cmd.exe /x/d/c";
|
||||
- const char *usershell = PerlEnv_getenv("PERL5SHELL");
|
||||
- w32_perlshell_items = tokenize(usershell ? usershell : defaultshell,
|
||||
- &w32_perlshell_tokens,
|
||||
- &w32_perlshell_vec);
|
||||
+ const char *shell = PerlEnv_getenv("PERL5SHELL");
|
||||
+ if (shell) {
|
||||
+ w32_perlshell_items = tokenize(shell,
|
||||
+ &w32_perlshell_tokens,
|
||||
+ &w32_perlshell_vec);
|
||||
+ }
|
||||
+ else {
|
||||
+ /* tokenize does some Unix-ish like things like
|
||||
+ \\ escaping that don't work well here
|
||||
+ */
|
||||
+ char shellbuf[MAX_PATH];
|
||||
+ UINT len = GetSystemDirectoryA(shellbuf, sizeof(shellbuf));
|
||||
+ if (len == 0) {
|
||||
+ translate_to_errno();
|
||||
+ return -1;
|
||||
+ }
|
||||
+ else if (len >= MAX_PATH) {
|
||||
+ /* buffer too small */
|
||||
+ errno = E2BIG;
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (shellbuf[len-1] != '\\') {
|
||||
+ my_strlcat(shellbuf, "\\", sizeof(shellbuf));
|
||||
+ ++len;
|
||||
+ }
|
||||
+ if (len + sizeof(shell_cmd) > sizeof(shellbuf)) {
|
||||
+ errno = E2BIG;
|
||||
+ return -1;
|
||||
+ }
|
||||
+ my_strlcat(shellbuf, shell_cmd, sizeof(shellbuf));
|
||||
+ len += sizeof(shell_cmd)-1;
|
||||
+
|
||||
+ Newx(w32_perlshell_vec, 3, char *);
|
||||
+ Newx(w32_perlshell_tokens, len + 1 + sizeof(cmd_opts), char);
|
||||
+
|
||||
+ my_strlcpy(w32_perlshell_tokens, shellbuf, len+1);
|
||||
+ my_strlcpy(w32_perlshell_tokens + len +1, cmd_opts,
|
||||
+ sizeof(cmd_opts));
|
||||
+
|
||||
+ w32_perlshell_vec[0] = w32_perlshell_tokens;
|
||||
+ w32_perlshell_vec[1] = w32_perlshell_tokens + len + 1;
|
||||
+ w32_perlshell_vec[2] = NULL;
|
||||
+
|
||||
+ w32_perlshell_items = 2;
|
||||
+ }
|
||||
}
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -635,7 +682,9 @@ Perl_do_aspawn(pTHX_ SV *really, SV **mark, SV **sp)
|
||||
if (sp <= mark)
|
||||
return -1;
|
||||
|
||||
- get_shell();
|
||||
+ if (get_shell() < 0)
|
||||
+ return -1;
|
||||
+
|
||||
Newx(argv, (sp - mark) + w32_perlshell_items + 2, char*);
|
||||
|
||||
if (SvNIOKp(*(mark+1)) && !SvPOKp(*(mark+1))) {
|
||||
@@ -765,7 +814,8 @@ do_spawn2_handles(pTHX_ const char *cmd, int exectype, const int *handles)
|
||||
if (needToTry) {
|
||||
char **argv;
|
||||
int i = -1;
|
||||
- get_shell();
|
||||
+ if (get_shell() < 0)
|
||||
+ return -1;
|
||||
Newx(argv, w32_perlshell_items + 2, char*);
|
||||
while (++i < w32_perlshell_items)
|
||||
argv[i] = w32_perlshell_vec[i];
|
||||
@@ -3482,7 +3532,8 @@ win32_pipe(int *pfd, unsigned int size, int mode)
|
||||
DllExport PerlIO*
|
||||
win32_popenlist(const char *mode, IV narg, SV **args)
|
||||
{
|
||||
- get_shell();
|
||||
+ if (get_shell() < 0)
|
||||
+ return NULL;
|
||||
|
||||
return do_popen(mode, NULL, narg, args);
|
||||
}
|
||||
--
|
||||
2.33.0
|
||||
|
||||
124
backport-CVE-2023-47100-CVE-2023-47038.patch
Normal file
124
backport-CVE-2023-47100-CVE-2023-47038.patch
Normal file
@ -0,0 +1,124 @@
|
||||
From 12c313ce49b36160a7ca2e9b07ad5bd92ee4a010 Mon Sep 17 00:00:00 2001
|
||||
From: Karl Williamson <khw@cpan.org>
|
||||
Date: Sat, 9 Sep 2023 11:59:09 -0600
|
||||
Subject: [PATCH] Fix read/write past buffer end: perl-security#140
|
||||
|
||||
A package name may be specified in a \p{...} regular expression
|
||||
construct. If unspecified, "utf8::" is assumed, which is the package
|
||||
all official Unicode properties are in. By specifying a different
|
||||
package, one can create a user-defined property with the same
|
||||
unqualified name as a Unicode one. Such a property is defined by a sub
|
||||
whose name begins with "Is" or "In", and if the sub wishes to refer to
|
||||
an official Unicode property, it must explicitly specify the "utf8::".
|
||||
S_parse_uniprop_string() is used to parse the interior of both \p{} and
|
||||
the user-defined sub lines.
|
||||
|
||||
In S_parse_uniprop_string(), it parses the input "name" parameter,
|
||||
creating a modified copy, "lookup_name", malloc'ed with the same size as
|
||||
"name". The modifications are essentially to create a canonicalized
|
||||
version of the input, with such things as extraneous white-space
|
||||
stripped off. I found it convenient to strip off the package specifier
|
||||
"utf8::". To to so, the code simply pretends "lookup_name" begins just
|
||||
after the "utf8::", and adjusts various other values to compensate.
|
||||
However, it missed the adjustment of one required one.
|
||||
|
||||
This is only a problem when the property name begins with "perl" and
|
||||
isn't "perlspace" nor "perlword". All such ones are undocumented
|
||||
internal properties.
|
||||
|
||||
What happens in this case is that the input is reparsed with slightly
|
||||
different rules in effect as to what is legal versus illegal. The
|
||||
problem is that "lookup_name" no longer is pointing to its initial
|
||||
value, but "name" is. Thus the space allocated for filling "lookup_name"
|
||||
is now shorter than "name", and as this shortened "lookup_name" is
|
||||
filled by copying suitable portions of "name", the write can be to
|
||||
unallocated space.
|
||||
|
||||
The solution is to skip the "utf8::" when reparsing "name". Then both
|
||||
"lookup_name" and "name" are effectively shortened by the same amount,
|
||||
and there is no going off the end.
|
||||
|
||||
This commit also does white-space adjustment so that things align
|
||||
vertically for readability.
|
||||
|
||||
This can be easily backported to earlier Perl releases.
|
||||
|
||||
Reference:https://github.com/Perl/perl5/commit/12c313ce49b36160a7ca2e9b07ad5bd92ee4a010
|
||||
Conflict:Context adaptation
|
||||
|
||||
---
|
||||
regcomp.c | 17 +++++++++++------
|
||||
t/re/pat_advanced.t | 8 ++++++++
|
||||
2 files changed, 19 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index f5e5f58..0d3e9a9 100644
|
||||
--- a/regcomp.c
|
||||
+++ b/regcomp.c
|
||||
@@ -23815,7 +23815,7 @@ S_parse_uniprop_string(pTHX_
|
||||
* compile perl to know about them) */
|
||||
bool is_nv_type = FALSE;
|
||||
|
||||
- unsigned int i, j = 0;
|
||||
+ unsigned int i = 0, i_zero = 0, j = 0;
|
||||
int equals_pos = -1; /* Where the '=' is found, or negative if none */
|
||||
int slash_pos = -1; /* Where the '/' is found, or negative if none */
|
||||
int table_index = 0; /* The entry number for this property in the table
|
||||
@@ -23949,9 +23949,13 @@ S_parse_uniprop_string(pTHX_
|
||||
* all of them are considered to be for that package. For the purposes of
|
||||
* parsing the rest of the property, strip it off */
|
||||
if (non_pkg_begin == STRLENs("utf8::") && memBEGINPs(name, name_len, "utf8::")) {
|
||||
- lookup_name += STRLENs("utf8::");
|
||||
- j -= STRLENs("utf8::");
|
||||
- equals_pos -= STRLENs("utf8::");
|
||||
+ lookup_name += STRLENs("utf8::");
|
||||
+ j -= STRLENs("utf8::");
|
||||
+ equals_pos -= STRLENs("utf8::");
|
||||
+ i_zero = STRLENs("utf8::"); /* When resetting 'i' to reparse
|
||||
+ from the beginning, it has to be
|
||||
+ set past what we're stripping
|
||||
+ off */
|
||||
stripped_utf8_pkg = TRUE;
|
||||
}
|
||||
|
||||
@@ -24356,7 +24360,8 @@ S_parse_uniprop_string(pTHX_
|
||||
|
||||
/* We set the inputs back to 0 and the code below will reparse,
|
||||
* using strict */
|
||||
- i = j = 0;
|
||||
+ i = i_zero;
|
||||
+ j = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24377,7 +24382,7 @@ S_parse_uniprop_string(pTHX_
|
||||
* separates two digits */
|
||||
if (cur == '_') {
|
||||
if ( stricter
|
||||
- && ( i == 0 || (int) i == equals_pos || i == name_len- 1
|
||||
+ && ( i == i_zero || (int) i == equals_pos || i == name_len- 1
|
||||
|| ! isDIGIT_A(name[i-1]) || ! isDIGIT_A(name[i+1])))
|
||||
{
|
||||
lookup_name[j++] = '_';
|
||||
diff --git a/t/re/pat_advanced.t b/t/re/pat_advanced.t
|
||||
index d679870..3b79eec 100644
|
||||
--- a/t/re/pat_advanced.t
|
||||
+++ b/t/re/pat_advanced.t
|
||||
@@ -2565,6 +2565,14 @@ EOF
|
||||
{}, "GH #17278");
|
||||
}
|
||||
|
||||
+ { # perl-security#140, read/write past buffer end
|
||||
+ fresh_perl_like('qr/\p{utf8::perl x}/',
|
||||
+ qr/Illegal user-defined property name "utf8::perl x" in regex/,
|
||||
+ {}, "perl-security#140");
|
||||
+ fresh_perl_is('qr/\p{utf8::_perl_surrogate}/', "",
|
||||
+ {}, "perl-security#140");
|
||||
+ }
|
||||
+
|
||||
|
||||
# !!! NOTE that tests that aren't at all likely to crash perl should go
|
||||
# a ways above, above these last ones. There's a comment there that, like
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -8,10 +8,10 @@ Subject: [PATCH] change lib to lib64
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/Configure b/Configure
|
||||
index 3be9f05..1c53af7 100755
|
||||
index cc74bdc..0e7441d 100755
|
||||
--- a/Configure
|
||||
+++ b/Configure
|
||||
@@ -7269,8 +7269,8 @@ esac'
|
||||
@@ -7229,8 +7229,8 @@ esac'
|
||||
: Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
|
||||
case "$installstyle" in
|
||||
'') case "$prefix" in
|
||||
@ -22,7 +22,7 @@ index 3be9f05..1c53af7 100755
|
||||
esac
|
||||
;;
|
||||
*) dflt="$installstyle" ;;
|
||||
@@ -7336,8 +7336,8 @@ esac
|
||||
@@ -7296,8 +7296,8 @@ esac
|
||||
: /opt/perl/lib/perl5... would be redundant.
|
||||
: The default "style" setting is made in installstyle.U
|
||||
case "$installstyle" in
|
||||
@ -33,7 +33,7 @@ index 3be9f05..1c53af7 100755
|
||||
esac
|
||||
eval $prefixit
|
||||
$cat <<EOM
|
||||
@@ -7584,8 +7584,8 @@ siteprefixexp="$ansexp"
|
||||
@@ -7544,8 +7544,8 @@ siteprefixexp="$ansexp"
|
||||
prog=`echo $package | $sed 's/-*[0-9.]*$//'`
|
||||
case "$sitelib" in
|
||||
'') case "$installstyle" in
|
||||
@ -44,7 +44,7 @@ index 3be9f05..1c53af7 100755
|
||||
esac
|
||||
;;
|
||||
*) dflt="$sitelib"
|
||||
@@ -8001,8 +8001,8 @@ case "$vendorprefix" in
|
||||
@@ -7963,8 +7963,8 @@ case "$vendorprefix" in
|
||||
'')
|
||||
prog=`echo $package | $sed 's/-*[0-9.]*$//'`
|
||||
case "$installstyle" in
|
||||
@ -56,5 +56,5 @@ index 3be9f05..1c53af7 100755
|
||||
;;
|
||||
*) dflt="$vendorlib"
|
||||
--
|
||||
1.8.3.1
|
||||
2.27.0
|
||||
|
||||
|
||||
@ -8,10 +8,10 @@ Subject: [PATCH] disable rpath by default
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
|
||||
index fe53be1..fd0f5b5 100644
|
||||
index 977b50e..ac5cdb5 100644
|
||||
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
|
||||
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
|
||||
@@ -1045,9 +1045,6 @@ sub xs_make_dynamic_lib {
|
||||
@@ -1077,9 +1077,6 @@ sub xs_make_dynamic_lib {
|
||||
}
|
||||
|
||||
my $ld_run_path_shell = "";
|
||||
@ -22,5 +22,5 @@ index fe53be1..fd0f5b5 100644
|
||||
push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $dlsyms_arg, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist;
|
||||
%s$(LD) %s $(LDDLFLAGS) %s %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
|
||||
--
|
||||
1.8.3.1
|
||||
2.27.0
|
||||
|
||||
|
||||
53
fix-test-case-failure-caused-by-zlib.patch
Normal file
53
fix-test-case-failure-caused-by-zlib.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From 2425a39797fcc694082a4f6f0be27a2ec736c6b3 Mon Sep 17 00:00:00 2001
|
||||
From: hongjinghao <hongjinghao@huawei.com>
|
||||
Date: Tue, 4 Jun 2024 17:26:43 +0800
|
||||
Subject: [PATCH] fix test case failure caused by zlib
|
||||
|
||||
The patching of zlib in openEuler with upstream bug fixes aligns its functionality with newer versions of zlib. However, the version number of zlib within openEuler remains unchanged, indicating the older version. Consequently, the test cases for perl-IO-Compress, which rely on the zlib version number to determine expected outcomes, will fail. To address this, perl-IO-Compress must be updated to accommodate the changes in zlib and remove the versioning-based checks from its test suite.
|
||||
|
||||
This bugfix commit for zlib in openEuler resulted in a change in its function behavior:
|
||||
https://gitee.com/src-openeuler/zlib/pulls/46
|
||||
|
||||
---
|
||||
cpan/Compress-Raw-Zlib/t/02zlib.t | 4 ++--
|
||||
cpan/IO-Compress/t/cz-03zlib-v1.t | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/cpan/Compress-Raw-Zlib/t/02zlib.t b/cpan/Compress-Raw-Zlib/t/02zlib.t
|
||||
index 64c8944..4c445c9 100644
|
||||
--- a/cpan/Compress-Raw-Zlib/t/02zlib.t
|
||||
+++ b/cpan/Compress-Raw-Zlib/t/02zlib.t
|
||||
@@ -490,7 +490,7 @@ SKIP:
|
||||
last if $status == Z_STREAM_END or $status != Z_OK ;
|
||||
}
|
||||
|
||||
- cmp_ok $status, '==', Z_DATA_ERROR ;
|
||||
+ cmp_ok $status, '==', Z_STREAM_END ;
|
||||
is $GOT, $goodbye ;
|
||||
|
||||
|
||||
@@ -514,7 +514,7 @@ SKIP:
|
||||
is length($rest), $len2, "expected compressed output";
|
||||
|
||||
$GOT = '';
|
||||
- cmp_ok $k->inflate($rest, $GOT), '==', Z_DATA_ERROR, "inflate returns Z_DATA_ERROR";
|
||||
+ cmp_ok $k->inflate($rest, $GOT), '==', Z_STREAM_END, "inflate returns Z_DATA_ERROR";
|
||||
is $GOT, $goodbye ;
|
||||
}
|
||||
|
||||
diff --git a/cpan/IO-Compress/t/cz-03zlib-v1.t b/cpan/IO-Compress/t/cz-03zlib-v1.t
|
||||
index 9b75f9b..f2757c0 100644
|
||||
--- a/cpan/IO-Compress/t/cz-03zlib-v1.t
|
||||
+++ b/cpan/IO-Compress/t/cz-03zlib-v1.t
|
||||
@@ -700,7 +700,7 @@ EOM
|
||||
|
||||
($GOT, $status) = $k->inflate($rest) ;
|
||||
|
||||
- ok $status == Z_DATA_ERROR ;
|
||||
+ ok $status == Z_STREAM_END ;
|
||||
ok $Z . $GOT eq $goodbye ;
|
||||
}
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -6,10 +6,6 @@ MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Reason:Install libperl.so to shrpdir on Linux
|
||||
Conflict:NA
|
||||
Reference:https://src.fedoraproject.org/rpms/perl/blob/master/f/perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
Configure | 7 ++++---
|
||||
@ -0,0 +1,110 @@
|
||||
From 9575301256f67116eccdbb99b38fc804ba3dcf53 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Mon, 18 Apr 2016 16:24:03 +0200
|
||||
Subject: [PATCH] Provide ExtUtils::MM methods as standalone
|
||||
ExtUtils::MM::Utils
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
If you cannot afford depending on ExtUtils::MakeMaker, you can
|
||||
depend on ExtUtils::MM::Utils instead.
|
||||
|
||||
<https://bugzilla.redhat.com/show_bug.cgi?id=1129443>
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
MANIFEST | 1 +
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm | 68 ++++++++++++++++++++++++
|
||||
2 files changed, 69 insertions(+)
|
||||
create mode 100644 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm
|
||||
|
||||
diff --git a/MANIFEST b/MANIFEST
|
||||
index 6af238c..d4f0c56 100644
|
||||
--- a/MANIFEST
|
||||
+++ b/MANIFEST
|
||||
@@ -784,6 +784,7 @@ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm MakeMaker methods for QNX
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm MakeMaker methods for Unix
|
||||
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm Independed MM methods
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm MakeMaker methods for U/WIN
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm MakeMaker methods for VMS
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm MakeMaker methods for VOS
|
||||
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm
|
||||
new file mode 100644
|
||||
index 0000000..6bbc0d8
|
||||
--- /dev/null
|
||||
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm
|
||||
@@ -0,0 +1,68 @@
|
||||
+package ExtUtils::MM::Utils;
|
||||
+
|
||||
+require 5.006;
|
||||
+
|
||||
+use strict;
|
||||
+use vars qw($VERSION);
|
||||
+$VERSION = '7.11_06';
|
||||
+$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
|
||||
+
|
||||
+=head1 NAME
|
||||
+
|
||||
+ExtUtils::MM::Utils - ExtUtils::MM methods without dependency on ExtUtils::MakeMaker
|
||||
+
|
||||
+=head1 SYNOPSIS
|
||||
+
|
||||
+ require ExtUtils::MM::Utils;
|
||||
+ MM->maybe_command($file);
|
||||
+
|
||||
+=head1 DESCRIPTION
|
||||
+
|
||||
+This is a collection of L<ExtUtils::MM> subroutines that are used by many
|
||||
+other modules but that do not need full-featured L<ExtUtils::MakeMaker>. The
|
||||
+issue with L<ExtUtils::MakeMaker> is it pulls in Perl header files and that is
|
||||
+an overkill for small subroutines.
|
||||
+
|
||||
+An example is the L<IPC::Cmd> that caused installing GCC just because of
|
||||
+three-line I<maybe_command()> from L<ExtUtils::MM_Unix>.
|
||||
+
|
||||
+The intentions is to use L<ExtUtils::MM::Utils> instead of
|
||||
+L<ExtUtils::MakeMaker> for these trivial methods. You can still call them via
|
||||
+L<MM> class name.
|
||||
+
|
||||
+=head1 METHODS
|
||||
+
|
||||
+=over 4
|
||||
+
|
||||
+=item maybe_command
|
||||
+
|
||||
+Returns true, if the argument is likely to be a command.
|
||||
+
|
||||
+=cut
|
||||
+
|
||||
+if (!exists $INC{'ExtUtils/MM.pm'}) {
|
||||
+ *MM::maybe_command = *ExtUtils::MM::maybe_command = \&maybe_command;
|
||||
+}
|
||||
+
|
||||
+sub maybe_command {
|
||||
+ my($self,$file) = @_;
|
||||
+ return $file if -x $file && ! -d $file;
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
+1;
|
||||
+
|
||||
+=back
|
||||
+
|
||||
+=head1 BUGS
|
||||
+
|
||||
+These methods are copied from L<ExtUtils::MM_Unix>. Other operating systems
|
||||
+are not supported yet. The reason is this
|
||||
+L<a hack for Linux
|
||||
+distributions|https://bugzilla.redhat.com/show_bug.cgi?id=1129443>.
|
||||
+
|
||||
+=head1 SEE ALSO
|
||||
+
|
||||
+L<ExtUtils::MakeMaker>, L<ExtUtils::MM>
|
||||
+
|
||||
+=cut
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@ -1,11 +1,7 @@
|
||||
From f793042f2bac2ace9a5c0030b47b41c4db561a5b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Fri, 6 Jun 2014 14:31:59 +0200
|
||||
From 8067179e65a28d91f00df7d36778229a07514471 Mon Sep 17 00:00:00 2001
|
||||
From: Jitka Plesnikova <jplesnik@redhat.com>
|
||||
Date: Thu, 29 Apr 2021 12:21:18 +0200
|
||||
Subject: [PATCH] Destroy {GDBM,NDBM,ODBM,SDBM}_File objects only from original
|
||||
thread context
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This patch fixes a crash when destroing a hash tied to a *_File
|
||||
database after spawning a thread:
|
||||
@ -20,17 +16,17 @@ This crashed or paniced depending on how perl was configured.
|
||||
|
||||
Closes RT#61912.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
Updated original ppisar's patch for perl 5.18.2
|
||||
---
|
||||
ext/GDBM_File/GDBM_File.xs | 16 ++++++++++------
|
||||
ext/GDBM_File/GDBM_File.xs | 20 ++++++++++++--------
|
||||
ext/NDBM_File/NDBM_File.xs | 16 ++++++++++------
|
||||
ext/ODBM_File/ODBM_File.xs | 18 +++++++++++-------
|
||||
ext/SDBM_File/SDBM_File.xs | 4 +++-
|
||||
t/lib/dbmt_common.pl | 35 +++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 69 insertions(+), 20 deletions(-)
|
||||
5 files changed, 71 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/ext/GDBM_File/GDBM_File.xs b/ext/GDBM_File/GDBM_File.xs
|
||||
index 33e08e2..7160f54 100644
|
||||
index cd0bb6f..0c395ac 100644
|
||||
--- a/ext/GDBM_File/GDBM_File.xs
|
||||
+++ b/ext/GDBM_File/GDBM_File.xs
|
||||
@@ -13,6 +13,7 @@
|
||||
@ -41,7 +37,7 @@ index 33e08e2..7160f54 100644
|
||||
GDBM_FILE dbp ;
|
||||
SV * filter[4];
|
||||
int filtering ;
|
||||
@@ -98,6 +99,7 @@ gdbm_TIEHASH(dbtype, name, read_write, m
|
||||
@@ -276,6 +277,7 @@ gdbm_TIEHASH(dbtype, name, read_write, mode)
|
||||
}
|
||||
if (dbp) {
|
||||
RETVAL = (GDBM_File)safecalloc(1, sizeof(GDBM_File_type));
|
||||
@ -49,29 +45,34 @@ index 33e08e2..7160f54 100644
|
||||
RETVAL->dbp = dbp;
|
||||
} else {
|
||||
RETVAL = NULL;
|
||||
@@ -118,12 +120,14 @@ gdbm_DESTROY(db)
|
||||
@@ -289,15 +291,17 @@ gdbm_DESTROY(db)
|
||||
PREINIT:
|
||||
int i = store_value;
|
||||
CODE:
|
||||
- gdbm_close(db);
|
||||
CODE:
|
||||
- if (gdbm_file_close(db)) {
|
||||
- croak("gdbm_close: %s; %s", gdbm_strerror(gdbm_errno),
|
||||
- strerror(errno));
|
||||
+ if (db && db->owner == aTHX) {
|
||||
+ if (gdbm_file_close(db)) {
|
||||
+ croak("gdbm_close: %s; %s", gdbm_strerror(gdbm_errno),
|
||||
+ strerror(errno));
|
||||
+ }
|
||||
+ do {
|
||||
+ if (db->filter[i])
|
||||
+ SvREFCNT_dec(db->filter[i]);
|
||||
+ } while (i-- > 0);
|
||||
+ safefree(db);
|
||||
}
|
||||
- do {
|
||||
- if (db->filter[i])
|
||||
- SvREFCNT_dec(db->filter[i]);
|
||||
- } while (i-- > 0);
|
||||
- safefree(db);
|
||||
+ if (db && db->owner == aTHX) {
|
||||
+ gdbm_close(db);
|
||||
+ do {
|
||||
+ if (db->filter[i])
|
||||
+ SvREFCNT_dec(db->filter[i]);
|
||||
+ } while (i-- > 0);
|
||||
+ safefree(db);
|
||||
+ }
|
||||
|
||||
#define gdbm_FETCH(db,key) gdbm_fetch(db->dbp,key)
|
||||
datum_value
|
||||
void
|
||||
gdbm_UNTIE(db, count)
|
||||
diff --git a/ext/NDBM_File/NDBM_File.xs b/ext/NDBM_File/NDBM_File.xs
|
||||
index 52e60fc..af223e5 100644
|
||||
index eed671a..651fe0f 100644
|
||||
--- a/ext/NDBM_File/NDBM_File.xs
|
||||
+++ b/ext/NDBM_File/NDBM_File.xs
|
||||
@@ -33,6 +33,7 @@ END_EXTERN_C
|
||||
@ -103,7 +104,7 @@ index 52e60fc..af223e5 100644
|
||||
+ if (db && db->owner == aTHX) {
|
||||
+ dbm_close(db->dbp);
|
||||
+ do {
|
||||
+ if (db->filter[i])
|
||||
+ if (db->filter[i])
|
||||
+ SvREFCNT_dec(db->filter[i]);
|
||||
+ } while (i-- > 0);
|
||||
+ safefree(db);
|
||||
@ -112,7 +113,7 @@ index 52e60fc..af223e5 100644
|
||||
#define ndbm_FETCH(db,key) dbm_fetch(db->dbp,key)
|
||||
datum_value
|
||||
diff --git a/ext/ODBM_File/ODBM_File.xs b/ext/ODBM_File/ODBM_File.xs
|
||||
index d1ece7f..f7e00a0 100644
|
||||
index 38e6dbf..4b15a42 100644
|
||||
--- a/ext/ODBM_File/ODBM_File.xs
|
||||
+++ b/ext/ODBM_File/ODBM_File.xs
|
||||
@@ -49,6 +49,7 @@ datum nextkey(datum key);
|
||||
@ -146,7 +147,7 @@ index d1ece7f..f7e00a0 100644
|
||||
+ dbmrefcnt--;
|
||||
+ dbmclose();
|
||||
+ do {
|
||||
+ if (db->filter[i])
|
||||
+ if (db->filter[i])
|
||||
+ SvREFCNT_dec(db->filter[i]);
|
||||
+ } while (i-- > 0);
|
||||
+ safefree(db);
|
||||
@ -155,7 +156,7 @@ index d1ece7f..f7e00a0 100644
|
||||
datum_value
|
||||
odbm_FETCH(db, key)
|
||||
diff --git a/ext/SDBM_File/SDBM_File.xs b/ext/SDBM_File/SDBM_File.xs
|
||||
index 291e41b..0bdae9a 100644
|
||||
index 0df2855..0e2bd58 100644
|
||||
--- a/ext/SDBM_File/SDBM_File.xs
|
||||
+++ b/ext/SDBM_File/SDBM_File.xs
|
||||
@@ -10,6 +10,7 @@
|
||||
@ -166,7 +167,7 @@ index 291e41b..0bdae9a 100644
|
||||
DBM * dbp ;
|
||||
SV * filter[4];
|
||||
int filtering ;
|
||||
@@ -51,6 +52,7 @@ sdbm_TIEHASH(dbtype, filename, flags, mode)
|
||||
@@ -51,6 +52,7 @@ sdbm_TIEHASH(dbtype, filename, flags, mode, pagname=NULL)
|
||||
}
|
||||
if (dbp) {
|
||||
RETVAL = (SDBM_File)safecalloc(1, sizeof(SDBM_File_type));
|
||||
@ -184,7 +185,7 @@ index 291e41b..0bdae9a 100644
|
||||
sdbm_close(db->dbp);
|
||||
do {
|
||||
diff --git a/t/lib/dbmt_common.pl b/t/lib/dbmt_common.pl
|
||||
index 5d4098c..a0a4d52 100644
|
||||
index 60c66ae..a7f81fe 100644
|
||||
--- a/t/lib/dbmt_common.pl
|
||||
+++ b/t/lib/dbmt_common.pl
|
||||
@@ -510,5 +510,40 @@ unlink <Op_dbmx*>, $Dfile;
|
||||
@ -229,5 +230,5 @@ index 5d4098c..a0a4d52 100644
|
||||
done_testing();
|
||||
1;
|
||||
--
|
||||
1.9.3
|
||||
2.26.3
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
diff -aurpN a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
|
||||
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2023-09-08 16:58:12.482566546 +0800
|
||||
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2023-09-08 17:02:56.171807359 +0800
|
||||
@@ -31,6 +31,7 @@ BEGIN {
|
||||
$Is{IRIX} = $^O eq 'irix';
|
||||
$Is{NetBSD} = $^O eq 'netbsd';
|
||||
$Is{Interix} = $^O eq 'interix';
|
||||
+ $Is{Linux} = $^O eq 'linux';
|
||||
$Is{SunOS4} = $^O eq 'sunos';
|
||||
$Is{Solaris} = $^O eq 'solaris';
|
||||
$Is{SunOS} = $Is{SunOS4} || $Is{Solaris};
|
||||
@@ -1060,7 +1061,7 @@ sub xs_make_dynamic_lib {
|
||||
push(@m," \$(RM_F) \$\@\n");
|
||||
|
||||
my $libs = '$(LDLOADLIBS)';
|
||||
- if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
|
||||
+ if (($Is{Linux} || $Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
|
||||
# Use nothing on static perl platforms, and to the flags needed
|
||||
# to link against the shared libperl library on shared perl
|
||||
# platforms. We peek at lddlflags to see if we need -Wl,-R
|
||||
@@ -1073,6 +1074,11 @@ sub xs_make_dynamic_lib {
|
||||
# The Android linker will not recognize symbols from
|
||||
# libperl unless the module explicitly depends on it.
|
||||
$libs .= ' "-L$(PERL_INC)" -lperl';
|
||||
+ } else {
|
||||
+ if ($ENV{PERL_CORE}) {
|
||||
+ $libs .= ' "-L$(PERL_INC)"';
|
||||
+ }
|
||||
+ $libs .= ' -lperl';
|
||||
}
|
||||
}
|
||||
|
||||
diff -aurpN a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm
|
||||
--- a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm 1970-01-01 08:00:00.000000000 +0800
|
||||
+++ b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm 2023-09-08 17:09:16.773017629 +0800
|
||||
@@ -0,0 +1,26 @@
|
||||
+package ExtUtils::CBuilder::Platform::linux;
|
||||
+
|
||||
+use strict;
|
||||
+use ExtUtils::CBuilder::Platform::Unix;
|
||||
+use File::Spec;
|
||||
+
|
||||
+use vars qw($VERSION @ISA);
|
||||
+$VERSION = '0.280236';
|
||||
+our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
|
||||
+
|
||||
+sub link {
|
||||
+ my ($self, %args) = @_;
|
||||
+ my $cf = $self->{config};
|
||||
+
|
||||
+ # Link XS modules to libperl.so explicitly because multiple
|
||||
+ # dlopen(, RTLD_LOCAL) hides libperl symbols from XS module.
|
||||
+ local $cf->{lddlflags} = $cf->{lddlflags};
|
||||
+ if ($ENV{PERL_CORE}) {
|
||||
+ $cf->{lddlflags} .= ' -L' . $self->perl_inc();
|
||||
+ }
|
||||
+ $cf->{lddlflags} .= ' -lperl';
|
||||
+
|
||||
+ return $self->SUPER::link(%args);
|
||||
+}
|
||||
+
|
||||
+1;
|
||||
diff -aurpN a/MANIFEST b/MANIFEST
|
||||
--- a/MANIFEST 2023-09-08 16:59:28.747862538 +0800
|
||||
+++ b/MANIFEST 2023-09-08 17:00:43.036559444 +0800
|
||||
@@ -3535,6 +3535,7 @@ dist/ExtUtils-CBuilder/lib/ExtUtils/CBui
|
||||
dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm CBuilder methods for cygwin
|
||||
dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm CBuilder methods for darwin
|
||||
dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm CBuilder methods for OSF
|
||||
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm CBuilder methods for Linux
|
||||
dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm CBuilder methods for OS/2
|
||||
dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm CBuilder methods for Unix
|
||||
dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm CBuilder methods for VMS
|
||||
Binary file not shown.
@ -0,0 +1,40 @@
|
||||
From aacd2398e766500cb5d83c4d76b642fcf31d997a Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org>
|
||||
Date: Wed, 23 Jun 2021 10:26:50 +0300
|
||||
Subject: [PATCH 1/3] Fix GDBM_File to compile with version 1.20 and earlier
|
||||
|
||||
* ext/GDBM_File/GDBM_File.xs (ITEM_NOT_FOUND): Define conditionally,
|
||||
depending on the GDBM_VERSION_MAJOR and GDBM_VERSION_MINOR.
|
||||
Don't assume GDBM_ITEM_NOT_FOUND is a define (it isn't since
|
||||
gdbm commit d3e27957).
|
||||
---
|
||||
ext/GDBM_File/GDBM_File.xs | 11 +++++------
|
||||
1 file changed, 5 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/ext/GDBM_File/GDBM_File.xs b/ext/GDBM_File/GDBM_File.xs
|
||||
index cd0bb6f26f..494c2889ca 100644
|
||||
--- a/ext/GDBM_File/GDBM_File.xs
|
||||
+++ b/ext/GDBM_File/GDBM_File.xs
|
||||
@@ -145,14 +145,13 @@ output_datum(pTHX_ SV *arg, char *str, int size)
|
||||
#define gdbm_setopt(db,optflag,optval,optlen) not_here("gdbm_setopt")
|
||||
#endif
|
||||
|
||||
-#ifndef GDBM_ITEM_NOT_FOUND
|
||||
-# define GDBM_ITEM_NOT_FOUND GDBM_NO_ERROR
|
||||
-#endif
|
||||
-
|
||||
+#if GDBM_VERSION_MAJOR == 1 && GDBM_VERSION_MINOR < 13
|
||||
/* Prior to 1.13, gdbm_fetch family functions set gdbm_errno to GDBM_NO_ERROR
|
||||
if the requested key did not exist */
|
||||
-#define ITEM_NOT_FOUND() \
|
||||
- (gdbm_errno == GDBM_ITEM_NOT_FOUND || gdbm_errno == GDBM_NO_ERROR)
|
||||
+# define ITEM_NOT_FOUND() (gdbm_errno == GDBM_NO_ERROR)
|
||||
+#else
|
||||
+# define ITEM_NOT_FOUND() (gdbm_errno == GDBM_ITEM_NOT_FOUND)
|
||||
+#endif
|
||||
|
||||
#define CHECKDB(db) do { \
|
||||
if (!db->dbp) { \
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
From ea57297a58b8f10ab885c19eec48ea076116cc1f Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org>
|
||||
Date: Wed, 23 Jun 2021 14:24:47 +0300
|
||||
Subject: [PATCH 2/3] Raise version number in ext/GDBM_File/GDBM_File.pm
|
||||
|
||||
---
|
||||
ext/GDBM_File/GDBM_File.pm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ext/GDBM_File/GDBM_File.pm b/ext/GDBM_File/GDBM_File.pm
|
||||
index d837536f80..cb08d091b8 100644
|
||||
--- a/ext/GDBM_File/GDBM_File.pm
|
||||
+++ b/ext/GDBM_File/GDBM_File.pm
|
||||
@@ -363,7 +363,7 @@ require XSLoader;
|
||||
);
|
||||
|
||||
# This module isn't dual life, so no need for dev version numbers.
|
||||
-$VERSION = '1.19';
|
||||
+$VERSION = '1.20';
|
||||
|
||||
XSLoader::load();
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
||||
110
perl.spec
110
perl.spec
@ -14,30 +14,38 @@
|
||||
#provides module without verion, no need to provide
|
||||
%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\((charnames|DynaLoader|DB)\\)$
|
||||
|
||||
%global perl_version 5.32.0
|
||||
%global perl_version 5.34.0
|
||||
|
||||
%global perl_compat perl(:MODULE_COMPAT_5.32.0)
|
||||
%global perl_compat perl(:MODULE_COMPAT_5.34.0)
|
||||
|
||||
Name: perl
|
||||
License: (GPL+ or Artistic) and (GPLv2+ or Artistic) and MIT and UCD and Public Domain and BSD
|
||||
Epoch: 4
|
||||
Version: %{perl_version}
|
||||
Release: 8
|
||||
Release: 12
|
||||
Summary: A highly capable, feature-rich programming language
|
||||
Url: https://www.perl.org/
|
||||
Source0: https://www.cpan.org/src/5.0/%{name}-%{version}.tar.xz
|
||||
|
||||
# PATCH-FEATURE-OPENEULER
|
||||
Patch1: change-lib-to-lib64.patch
|
||||
# PATCH-FEATURE-OPENEULER
|
||||
Patch2: disable-rpath-by-default.patch
|
||||
# PATCH-FIX-OPENEULER
|
||||
Patch3: create-libperl-soname.patch
|
||||
# PATCH-FIX-OPENEULER--rh#1107543, RT#61912
|
||||
Patch4: perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch
|
||||
Patch5: backport-perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
|
||||
Patch1: perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch
|
||||
Patch2: perl-5.16.3-create_libperl_soname.patch
|
||||
Patch3: perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
|
||||
Patch4: perl-5.34.0-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch
|
||||
Patch5: perl-5.35.1-Fix-GDBM_File-to-compile-with-version-1.20-and-earli.patch
|
||||
Patch6: perl-5.35.1-Raise-version-number-in-ext-GDBM_File-GDBM_File.pm.patch
|
||||
Patch7: change-lib-to-lib64.patch
|
||||
Patch8: disable-rpath-by-default.patch
|
||||
Patch9: perl-5.34.0-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch
|
||||
|
||||
BuildRequires: gcc bash findutils coreutils make tar procps bzip2-devel gdbm-devel
|
||||
Patch6000: backport-CVE-2021-36770.patch
|
||||
Patch6001: backport-CVE-2023-31484.patch
|
||||
Patch6002: backport-CVE-2023-31486.patch
|
||||
Patch6003: backport-CVE-2022-48522.patch
|
||||
Patch6004: backport-CVE-2023-47100-CVE-2023-47038.patch
|
||||
Patch6005: backport-CVE-2023-47039.patch
|
||||
Patch6006: fix-test-case-failure-caused-by-zlib.patch
|
||||
|
||||
BuildRequires: gcc bash findutils coreutils make tar procps bzip2-devel gdbm-devel perl-File-Compare perl-File-Find
|
||||
BuildRequires: zlib-devel systemtap-sdt-devel perl-interpreter perl-generators
|
||||
|
||||
Requires: perl-libs = %{epoch}:%{version}-%{release}
|
||||
@ -63,11 +71,11 @@ Requires: perl-Module-Metadata perl-Sys-Syslog perl-PerlIO-via-QuotedPrint
|
||||
Provides: perl-Attribute-Handlers perl-interpreter perl(bytes_heavy.pl) perl(dumpvar.pl) perl(perl5db.pl)
|
||||
Provides: perl-ExtUtils-Embed perl-ExtUtils-Miniperl perl-IO perl-IO-Zlib perl-Locale-Maketext-Simple perl-Math-Complex
|
||||
Provides: perl-Module-Loaded perl-Net-Ping perl-Pod-Html perl-SelfLoader perl-Test perl-Time-Piece perl-libnetcfg perl-open perl-utils
|
||||
Provides: perl-Errno perl-Memoize
|
||||
Provides: perl-Errno perl-Memoize perl-File-Compare perl-File-Find
|
||||
|
||||
Obsoletes: perl-Attribute-Handlers perl-interpreter perl-Errno perl-ExtUtils-Embed perl-Net-Ping
|
||||
Obsoletes: perl-ExtUtils-Miniperl perl-IO perl-IO-Zlib perl-Locale-Maketext-Simple perl-Math-Complex perl-Memoize perl-Module-Loaded
|
||||
Obsoletes: perl-Pod-Html perl-SelfLoader perl-Test perl-Time-Piece perl-libnetcfg perl-open perl-utils
|
||||
Obsoletes: perl-Pod-Html perl-SelfLoader perl-Test perl-Time-Piece perl-libnetcfg perl-open perl-utils perl-File-Compare perl-File-Find
|
||||
|
||||
|
||||
%description
|
||||
@ -78,9 +86,8 @@ prototyping and large scale development projects.
|
||||
%package libs
|
||||
Summary: The libraries for the perl
|
||||
License: (GPL+ or Artistic) and HSRL and MIT and UCD
|
||||
Provides: perl(:MODULE_COMPAT_5.28.0) perl(:VERSION) = 5.28.0
|
||||
Provides: %perl_compat
|
||||
Provides: perl(:VERSION) = %{perl_version} libperl.so.5.28()(64bit)
|
||||
Provides: perl(:VERSION) = %{perl_version}
|
||||
Provides: perl(:WITH_64BIT) perl(:WITH_ITHREADS) perl(:WITH_THREADS)
|
||||
Provides: perl(:WITH_LARGEFILES) perl(:WITH_PERLIO) perl(unicore::Name)
|
||||
Provides: perl(utf8_heavy.pl)
|
||||
@ -94,7 +101,8 @@ Summary: Development files for %{name}
|
||||
License: (GPL+ or Artistic) and UCD
|
||||
|
||||
Requires: perl = %{epoch}:%{version}-%{release} system-rpm-config systemtap-sdt-devel
|
||||
Requires: perl(ExtUtils::ParseXS) perl(:MODULE_COMPAT_5.28.0) perl(Devel::PPPort)
|
||||
Requires: perl(ExtUtils::ParseXS) perl(Devel::PPPort)
|
||||
Requires: %perl_compat
|
||||
|
||||
Provides: perl-Devel-Peek perl-Devel-SelfStubber perl-tests
|
||||
|
||||
@ -405,6 +413,9 @@ make test_harness
|
||||
%exclude %{perl_datadir}/{integer.pm,strict.pm,unicore,utf8.pm}
|
||||
%exclude %{perl_datadir}/{utf8_heavy.pl,warnings.pm,XSLoader.pm}
|
||||
%exclude %dir %{perl_vendor_datadir}
|
||||
%dir %{perl_datadir}/File
|
||||
%{perl_datadir}/File/Compare.pm
|
||||
%{perl_datadir}/File/Find.pm
|
||||
|
||||
%license Artistic Copying
|
||||
%doc AUTHORS
|
||||
@ -483,6 +494,63 @@ make test_harness
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%changelog
|
||||
* Tue Jun 4 2024 hongjinghao <hongjinghao@huawei.com> - 4:5.34.0-12
|
||||
- fix test case failure caused by zlib
|
||||
|
||||
* Mon Dec 11 2023 huyubiao <huyubiao@huawei.com> - 4:5.34.0-11
|
||||
- Fix CVE-2023-47038, CVE-2023-47100, CVE-2023-47039
|
||||
|
||||
* Fri Sep 8 2023 zhangzikang <zhangzikang@kylinos.cn> - 4:5.34.0-10
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:fix-perl-re.so-undefined-symbol-error
|
||||
|
||||
* Fri Aug 25 2023 yangmingtai <yangmingtai@huawei.com> - 4:5.34.0-9
|
||||
- fix CVE-2022-48522
|
||||
|
||||
* Mon Jun 26 2023 yangmingtai <yangmingtai@huawei.com> - 4:5.34.0-8
|
||||
- fix CVE-2023-31486
|
||||
|
||||
* Mon May 15 2023 dongyuzhen <dongyuzhen@h-partners.com> 4:5.34.0-7
|
||||
- fix CVE-2023-31484
|
||||
|
||||
* Fri Jul 01 2022 dongyuzhen <dongyuzhen@h-partners.com> 4:5.34.0-6
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:Add patches that are deleted during the upgrade
|
||||
|
||||
* Tue Jun 21 2022 tianwei<tianwei@h-partners.com> 4:5.34.0-5
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:delete maninfo of Compare and Find packages from perl
|
||||
|
||||
* Mon Mar 28 2022 tianwei<tianwei@h-partners.com> 4:5.34.0-4
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:delete low version files
|
||||
|
||||
* Thu Feb 24 2022 yuanxin<yuanxin24@h-partners.com> 4:5.34.0-3
|
||||
- Type:CVE
|
||||
- ID:CVE-2021-36770
|
||||
- SUG:NA
|
||||
- DESC:fix CVE-2021-36770
|
||||
|
||||
* Wed Jan 05 2022 tianwei<tianwei12@huawei.com> 4:5.34.0-2
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:fix perl version required for devel
|
||||
|
||||
* Wed Dec 29 2021 tianwei<tianwei12@huawei.com> 4:5.34.0-1
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:upgrade version to 5.34.0
|
||||
|
||||
* Thu Aug 5 2021 yuanxin<yuanxin24@huawei.com> 4:5.32.0-8
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
@ -507,14 +575,14 @@ make test_harness
|
||||
- SUG:NA
|
||||
- DESC:remove perl-DB_File
|
||||
|
||||
* Thu Mar 30 2021 shenyangyang<shenyangyang4@huawei.com> - 4:5.32.0-4
|
||||
* Tue Mar 30 2021 shenyangyang<shenyangyang4@huawei.com> - 4:5.32.0-4
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:Rebuild for openEuler-rpm-config moving /usr/lib/rpm/openEuler/xxxx
|
||||
to /usr/lib/xxxx
|
||||
|
||||
* Web Mar 03 2021 wuchaochao<wuchaochao4@huawei.com> - 4:5.32.0-3
|
||||
* Wed Mar 03 2021 wuchaochao<wuchaochao4@huawei.com> - 4:5.32.0-3
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
@ -556,7 +624,7 @@ make test_harness
|
||||
- SUG:NA
|
||||
- DESC:add macros that used for perl
|
||||
|
||||
* Fri Jan 2 2020 openEuler Buildteam <buildteam@openeuler.org> - 4:5.28.0-430
|
||||
* Thu Jan 2 2020 openEuler Buildteam <buildteam@openeuler.org> - 4:5.28.0-430
|
||||
- Type:NA
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
|
||||
Loading…
Reference in New Issue
Block a user