summaryrefslogtreecommitdiffstats
path: root/poky/meta/recipes-devtools/perl/perl
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-devtools/perl/perl')
-rw-r--r--poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch52
-rw-r--r--poky/meta/recipes-devtools/perl/perl/CVE-2017-12837.patch32
-rw-r--r--poky/meta/recipes-devtools/perl/perl/CVE-2017-12883.patch44
-rw-r--r--poky/meta/recipes-devtools/perl/perl/CVE-2018-6797.patch45
-rw-r--r--poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-1.patch130
-rw-r--r--poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-2.patch37
-rw-r--r--poky/meta/recipes-devtools/perl/perl/CVE-2018-6913.patch153
-rw-r--r--poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch12
-rw-r--r--poky/meta/recipes-devtools/perl/perl/config.sh60
9 files changed, 88 insertions, 477 deletions
diff --git a/poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch b/poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch
new file mode 100644
index 000000000..a43fbba0b
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch
@@ -0,0 +1,52 @@
+From 40702abf3156fa92ef70ee5d445fe52dd6cfbc7d Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 20 Sep 2018 18:48:48 +0800
+Subject: [PATCH] ExtUtils/MM_Unix.pm: fix race issues
+
+Fixed a race issue when compile libhtml-parser-perl and others who use MakeMaker:
+[snip]
+chmod 755 blib/arch/auto/HTML/Parser/Parser.so
+chmod 644 "Parser.bs"
+[snip]
+
+The rule INST_DYNAMIC removes '.bs' file which are generated by BOOTSTRAP, but
+the have no dependencies, so there is a race issue:
+
+BOOTSTRAP:
+ touch foo.bs
+ chmod 755 foo.bs
+
+INST_DYNAMIC:
+ rm -fr foo.bs
+
+The error would happen when INST_DYNAMIC removes foo.bs after BOOTSTRAP touched
+it but before chmod on it.
+
+Upstream-Status: Backport [https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/44e95e717372abe2b0a6ee55de4b686760b65360]
+
+Note, This is not a real backport, upstream has totally refactored it in one
+patch, please see the link above, it's not a good idea to backport such a big
+patch, I just referred it to fix the problem in a simple way. I mark it as
+backport is because we can drop the patch after upgrade perl to 5.26 or 5.28.
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+index 95d9761..9cabe2d 100644
+--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+@@ -933,7 +933,7 @@ OTHERLDFLAGS = '.$ld_opt.$otherldflags.'
+ INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
+ INST_DYNAMIC_FIX = '.$ld_fix.'
+
+-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
++$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) $(BOOTSTRAP)
+ ');
+ if ($armaybe ne ':'){
+ $ldfrom = 'tmp$(LIB_EXT)';
+--
+2.7.4
+
diff --git a/poky/meta/recipes-devtools/perl/perl/CVE-2017-12837.patch b/poky/meta/recipes-devtools/perl/perl/CVE-2017-12837.patch
deleted file mode 100644
index 0b59fcda3..000000000
--- a/poky/meta/recipes-devtools/perl/perl/CVE-2017-12837.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 73d7247ecab863ef26b5687a37ccc75d6144ad0f Mon Sep 17 00:00:00 2001
-From: Karl Williamson <khw@cpan.org>
-Date: Tue, 17 Oct 2017 13:49:14 +0800
-Subject: [PATCH] fix CVE-2017-12837
-
-Signed-off-by: Karl Williamson <khw@cpan.org>
-Signed-off-by: Steve Hay <steve.m.hay@googlemail.com>
-
-CVE: CVE-2017-12837
-Upstream-Status: Backport
-https://perl5.git.perl.org/perl.git/commitdiff/96c83ed78aeea1a0496dd2b2d935869a822dc8a5
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- regcomp.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/regcomp.c b/regcomp.c
-index 5498d14..31ec383 100644
---- a/regcomp.c
-+++ b/regcomp.c
-@@ -13021,6 +13021,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
- goto loopdone;
- }
- p = RExC_parse;
-+ RExC_parse = parse_start;
- if (ender > 0xff) {
- REQUIRE_UTF8(flagp);
- }
---
-1.8.3.1
-
diff --git a/poky/meta/recipes-devtools/perl/perl/CVE-2017-12883.patch b/poky/meta/recipes-devtools/perl/perl/CVE-2017-12883.patch
deleted file mode 100644
index 5c1805f9e..000000000
--- a/poky/meta/recipes-devtools/perl/perl/CVE-2017-12883.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 40b3cdad3649334585cee8f4630ec9a025e62be6 Mon Sep 17 00:00:00 2001
-From: Karl Williamson <khw@cpan.org>
-Date: Fri, 25 Aug 2017 11:33:58 -0600
-Subject: [PATCH] PATCH: [perl #131598]
-
-The cause of this is that the vFAIL macro uses RExC_parse, and that
-variable has just been changed in preparation for code after the vFAIL.
-The solution is to not change RExC_parse until after the vFAIL.
-
-This is a case where the macro hides stuff that can bite you.
-
-(cherry picked from commit 2be4edede4ae226e2eebd4eff28cedd2041f300f)
-
-Upstream-Status: Backport
-CVE: CVE-2017-12833
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- regcomp.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-Index: perl-5.24.1/regcomp.c
-===================================================================
---- perl-5.24.1.orig/regcomp.c
-+++ perl-5.24.1/regcomp.c
-@@ -11918,14 +11918,16 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pREx
- }
- sv_catpv(substitute_parse, ")");
-
-- RExC_parse = RExC_start = RExC_adjusted_start = SvPV(substitute_parse,
-- len);
-+ len = SvCUR(substitute_parse);
-
- /* Don't allow empty number */
- if (len < (STRLEN) 8) {
- RExC_parse = endbrace;
- vFAIL("Invalid hexadecimal number in \\N{U+...}");
- }
-+
-+ RExC_parse = RExC_start = RExC_adjusted_start
-+ = SvPV_nolen(substitute_parse);
- RExC_end = RExC_parse + len;
-
- /* The values are Unicode, and therefore not subject to recoding, but
diff --git a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6797.patch b/poky/meta/recipes-devtools/perl/perl/CVE-2018-6797.patch
deleted file mode 100644
index b56ebd3ea..000000000
--- a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6797.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From abe1e6c568b96bcb382dfa4f61c56d1ab001ea51 Mon Sep 17 00:00:00 2001
-From: Karl Williamson <khw@cpan.org>
-Date: Fri, 2 Feb 2018 15:14:27 -0700
-Subject: [PATCH] (perl #132227) restart a node if we change to uni rules
- within the node and encounter a sharp S
-
-This could lead to a buffer overflow.
-
-(cherry picked from commit a02c70e35d1313a5f4e245e8f863c810e991172d)
-
-CVE: CVE-2018-6797
-Upstream-Status: Backport [https://perl5.git.perl.org/perl.git/commitdiff/abe1e6c568b96bcb382dfa4f61c56d1ab001ea51]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
----
- regcomp.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/regcomp.c b/regcomp.c
-index 3b9550b10d..a7dee9a09e 100644
---- a/regcomp.c
-+++ b/regcomp.c
-@@ -13543,6 +13543,18 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
- * /u. This includes the multi-char fold SHARP S to
- * 'ss' */
- if (UNLIKELY(ender == LATIN_SMALL_LETTER_SHARP_S)) {
-+
-+ /* If the node started out having uni rules, we
-+ * wouldn't have gotten here. So this means
-+ * something in the middle has changed it, but
-+ * didn't think it needed to reparse. But this
-+ * sharp s now does indicate the need for
-+ * reparsing. */
-+ if (RExC_uni_semantics) {
-+ p = oldp;
-+ goto loopdone;
-+ }
-+
- RExC_seen_unfolded_sharp_s = 1;
- maybe_exactfu = FALSE;
- }
---
-2.15.1-424-g9478a660812
-
-
diff --git a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-1.patch b/poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-1.patch
deleted file mode 100644
index 34771624f..000000000
--- a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-1.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 0abf1e8d89aecd32dbdabda5da4d52a2d57a7cff Mon Sep 17 00:00:00 2001
-From: Karl Williamson <khw@cpan.org>
-Date: Tue, 6 Feb 2018 14:50:48 -0700
-Subject: [PATCH] [perl #132063]: Heap buffer overflow
-
-The proximal cause is several instances in regexec.c of the code
-assuming that the input was valid UTF-8, whereas the input was too short
-for what the start byte claimed it would be.
-
-I grepped through the core for any other similar uses, and did not find
-any.
-
-(cherry picked from commit fe7d8ba0a1bf567af8fa8fea128e2b9f4c553e84)
-
-CVE: CVE-2018-6798
-Upstream-Status: Backport [https://perl5.git.perl.org/perl.git/patch/0abf1e8d89aecd32dbdabda5da4d52a2d57a7cff]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
----
- regexec.c | 29 ++++++++++++++++-------------
- t/lib/warnings/regexec | 7 +++++++
- 2 files changed, 23 insertions(+), 13 deletions(-)
-
-diff --git a/regexec.c b/regexec.c
-index 5735b997fd..ea432c39d3 100644
---- a/regexec.c
-+++ b/regexec.c
-@@ -1466,7 +1466,9 @@ Perl_re_intuit_start(pTHX_
- ? trie_utf8_fold \
- : trie_latin_utf8_fold)))
-
--#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, uvc, charid, foldlen, foldbuf, uniflags) \
-+/* 'uscan' is set to foldbuf, and incremented, so below the end of uscan is
-+ * 'foldbuf+sizeof(foldbuf)' */
-+#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uc_end, uscan, len, uvc, charid, foldlen, foldbuf, uniflags) \
- STMT_START { \
- STRLEN skiplen; \
- U8 flags = FOLD_FLAGS_FULL; \
-@@ -1474,7 +1476,7 @@ STMT_START {
- case trie_flu8: \
- _CHECK_AND_WARN_PROBLEMATIC_LOCALE; \
- if (utf8_target && UTF8_IS_ABOVE_LATIN1(*uc)) { \
-- _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc + UTF8SKIP(uc)); \
-+ _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc_end - uc); \
- } \
- goto do_trie_utf8_fold; \
- case trie_utf8_exactfa_fold: \
-@@ -1483,7 +1485,7 @@ STMT_START {
- case trie_utf8_fold: \
- do_trie_utf8_fold: \
- if ( foldlen>0 ) { \
-- uvc = utf8n_to_uvchr( (const U8*) uscan, UTF8_MAXLEN, &len, uniflags ); \
-+ uvc = utf8n_to_uvchr( (const U8*) uscan, foldlen, &len, uniflags ); \
- foldlen -= len; \
- uscan += len; \
- len=0; \
-@@ -1500,7 +1502,7 @@ STMT_START {
- /* FALLTHROUGH */ \
- case trie_latin_utf8_fold: \
- if ( foldlen>0 ) { \
-- uvc = utf8n_to_uvchr( (const U8*) uscan, UTF8_MAXLEN, &len, uniflags ); \
-+ uvc = utf8n_to_uvchr( (const U8*) uscan, foldlen, &len, uniflags ); \
- foldlen -= len; \
- uscan += len; \
- len=0; \
-@@ -1519,7 +1521,7 @@ STMT_START {
- } \
- /* FALLTHROUGH */ \
- case trie_utf8: \
-- uvc = utf8n_to_uvchr( (const U8*) uc, UTF8_MAXLEN, &len, uniflags ); \
-+ uvc = utf8n_to_uvchr( (const U8*) uc, uc_end - uc, &len, uniflags ); \
- break; \
- case trie_plain: \
- uvc = (UV)*uc; \
-@@ -2599,10 +2601,10 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
- }
- points[pointpos++ % maxlen]= uc;
- if (foldlen || uc < (U8*)strend) {
-- REXEC_TRIE_READ_CHAR(trie_type, trie,
-- widecharmap, uc,
-- uscan, len, uvc, charid, foldlen,
-- foldbuf, uniflags);
-+ REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc,
-+ (U8 *) strend, uscan, len, uvc,
-+ charid, foldlen, foldbuf,
-+ uniflags);
- DEBUG_TRIE_EXECUTE_r({
- dump_exec_pos( (char *)uc, c, strend,
- real_start, s, utf8_target, 0);
-@@ -5511,8 +5513,9 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
- if ( base && (foldlen || uc < (U8*)(reginfo->strend))) {
- I32 offset;
- REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc,
-- uscan, len, uvc, charid, foldlen,
-- foldbuf, uniflags);
-+ (U8 *) reginfo->strend, uscan,
-+ len, uvc, charid, foldlen,
-+ foldbuf, uniflags);
- charcount++;
- if (foldlen>0)
- ST.longfold = TRUE;
-@@ -5642,8 +5645,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
- while (foldlen) {
- if (!--chars)
- break;
-- uvc = utf8n_to_uvchr(uscan, UTF8_MAXLEN, &len,
-- uniflags);
-+ uvc = utf8n_to_uvchr(uscan, foldlen, &len,
-+ uniflags);
- uscan += len;
- foldlen -= len;
- }
-diff --git a/t/lib/warnings/regexec b/t/lib/warnings/regexec
-index 900dd6ee7f..6635142dea 100644
---- a/t/lib/warnings/regexec
-+++ b/t/lib/warnings/regexec
-@@ -260,3 +260,10 @@ setlocale(&POSIX::LC_CTYPE, $utf8_locale);
- "k" =~ /(?[ \N{KELVIN SIGN} ])/i;
- ":" =~ /(?[ \: ])/;
- EXPECT
-+########
-+# NAME perl #132063, read beyond buffer end
-+# OPTION fatal
-+"\xff" =~ /(?il)\x{100}|\x{100}/;
-+EXPECT
-+Malformed UTF-8 character: \xff (too short; 1 byte available, need 13) in pattern match (m//) at - line 2.
-+Malformed UTF-8 character (fatal) at - line 2.
---
-2.15.1-424-g9478a660812
-
diff --git a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-2.patch b/poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-2.patch
deleted file mode 100644
index fb9b41a5e..000000000
--- a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6798-2.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f65da1ca2eee74696d9c120e9d69af37b4fa1920 Mon Sep 17 00:00:00 2001
-From: Tony Cook <tony@develop-help.com>
-Date: Mon, 19 Feb 2018 15:11:42 +1100
-Subject: [PATCH] (perl #132063) we should no longer warn for this code
-
-The first patch for 132063 prevented the buffer read overflow when
-dumping the warning but didn't fix the underlying problem.
-
-The next change treats the supplied buffer correctly, preventing the
-non-UTF-8 SV from being treated as UTF-8, preventing the warning.
-
-(cherry picked from commit 1e8b61488f195e1396aa801c685340b156104f4f)
-
-CVE: CVE-2018-6798
-Upstream-Status: Backport [https://perl5.git.perl.org/perl.git/commitdiff/f65da1ca2eee74696d9c120e9d69af37b4fa1920]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
----
- t/lib/warnings/regexec | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/t/lib/warnings/regexec b/t/lib/warnings/regexec
-index 6635142dea..c370ddc3c7 100644
---- a/t/lib/warnings/regexec
-+++ b/t/lib/warnings/regexec
-@@ -262,8 +262,5 @@ setlocale(&POSIX::LC_CTYPE, $utf8_locale);
- EXPECT
- ########
- # NAME perl #132063, read beyond buffer end
--# OPTION fatal
- "\xff" =~ /(?il)\x{100}|\x{100}/;
- EXPECT
--Malformed UTF-8 character: \xff (too short; 1 byte available, need 13) in pattern match (m//) at - line 2.
--Malformed UTF-8 character (fatal) at - line 2.
---
-2.15.1-424-g9478a660812
-
diff --git a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6913.patch b/poky/meta/recipes-devtools/perl/perl/CVE-2018-6913.patch
deleted file mode 100644
index 157af7bf9..000000000
--- a/poky/meta/recipes-devtools/perl/perl/CVE-2018-6913.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From f17fed5006177dce8ac48229c424a2da0d6ba492 Mon Sep 17 00:00:00 2001
-From: Tony Cook <tony@develop-help.com>
-Date: Tue, 8 Aug 2017 09:32:58 +1000
-Subject: [PATCH] (perl #131844) fix various space calculation issues in
- pp_pack.c
-
-- for the originally reported case, if the start/cur pointer is in the
- top 75% of the address space the add (cur) + glen addition would
- overflow, resulting in the condition failing incorrectly.
-
-- the addition of the existing space used to the space needed could
- overflow, resulting in too small an allocation and a buffer overflow.
-
-- the scaling for UTF8 could overflow.
-
-- the multiply to calculate the space needed for many items could
- overflow.
-
-For the first case, do a space calculation without making new pointers.
-
-For the other cases, detect the overflow and croak if there's an
-overflow.
-
-Originally this used Size_t_MAX as the maximum size of a memory
-allocation, but for -DDEBUGGING builds realloc() throws a panic for
-allocations over half the address space in size, changing the error
-reported for the allocation.
-
-For non-DEBUGGING builds the Size_t_MAX limit has the small chance
-of finding a system that has 3GB of contiguous space available, and
-allocating that space, which could be a denial of servce in some cases.
-
-Unfortunately changing the limit to half the address space means that
-the exact case with the original issue can no longer occur, so the
-test is no longer testing against the address + length issue that
-caused the original problem, since the allocation is failing earlier.
-
-One option would be to change the test so the size request by pack is
-just under 2GB, but this has a higher (but still low) probability that
-the system has the address space available, and will actually try to
-allocate the memory, so let's not do that.
-
-Note: changed
-plan tests => 14713;
-to
-plan tests => 14712;
-in a/t/op/pack.t
-to apply this patch on perl 5.24.1.
-
-CVE: CVE-2018-6913
-Upstream-Status: Backport [https://perl5.git.perl.org/perl.git/commitdiff/f17fed5006177dce8ac48229c424a2da0d6ba492]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
----
- pp_pack.c | 25 +++++++++++++++++++++----
- t/op/pack.t | 24 +++++++++++++++++++++++-
- 2 files changed, 44 insertions(+), 5 deletions(-)
-
-diff --git a/pp_pack.c b/pp_pack.c
-index 8937d6d715..5e9cc64301 100644
---- a/pp_pack.c
-+++ b/pp_pack.c
-@@ -357,11 +357,28 @@ STMT_START { \
- } \
- } STMT_END
-
-+#define SAFE_UTF8_EXPAND(var) \
-+STMT_START { \
-+ if ((var) > SSize_t_MAX / UTF8_EXPAND) \
-+ Perl_croak(aTHX_ "%s", "Out of memory during pack()"); \
-+ (var) = (var) * UTF8_EXPAND; \
-+} STMT_END
-+
-+#define GROWING2(utf8, cat, start, cur, item_size, item_count) \
-+STMT_START { \
-+ if (SSize_t_MAX / (item_size) < (item_count)) \
-+ Perl_croak(aTHX_ "%s", "Out of memory during pack()"); \
-+ GROWING((utf8), (cat), (start), (cur), (item_size) * (item_count)); \
-+} STMT_END
-+
- #define GROWING(utf8, cat, start, cur, in_len) \
- STMT_START { \
- STRLEN glen = (in_len); \
-- if (utf8) glen *= UTF8_EXPAND; \
-- if ((cur) + glen >= (start) + SvLEN(cat)) { \
-+ STRLEN catcur = (STRLEN)((cur) - (start)); \
-+ if (utf8) SAFE_UTF8_EXPAND(glen); \
-+ if (SSize_t_MAX - glen < catcur) \
-+ Perl_croak(aTHX_ "%s", "Out of memory during pack()"); \
-+ if (catcur + glen >= SvLEN(cat)) { \
- (start) = sv_exp_grow(cat, glen); \
- (cur) = (start) + SvCUR(cat); \
- } \
-@@ -372,7 +389,7 @@ STMT_START { \
- STMT_START { \
- const STRLEN glen = (in_len); \
- STRLEN gl = glen; \
-- if (utf8) gl *= UTF8_EXPAND; \
-+ if (utf8) SAFE_UTF8_EXPAND(gl); \
- if ((cur) + gl >= (start) + SvLEN(cat)) { \
- *cur = '\0'; \
- SvCUR_set((cat), (cur) - (start)); \
-@@ -2126,7 +2143,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* sym
- if (props && !(props & PACK_SIZE_UNPREDICTABLE)) {
- /* We can process this letter. */
- STRLEN size = props & PACK_SIZE_MASK;
-- GROWING(utf8, cat, start, cur, (STRLEN) len * size);
-+ GROWING2(utf8, cat, start, cur, size, (STRLEN)len);
- }
- }
-
-diff --git a/t/op/pack.t b/t/op/pack.t
-index 664aaaf1b0..cf0e286509 100644
---- a/t/op/pack.t
-+++ b/t/op/pack.t
-@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
- my $no_signedness = $] > 5.009 ? '' :
- "Signed/unsigned pack modifiers not available on this perl";
-
--plan tests => 14712;
-+plan tests => 14717;
-
- use strict;
- use warnings qw(FATAL all);
-@@ -2044,3 +2044,25 @@ ok(1, "argument underflow did not crash"
- is(pack("H40", $up_nul), $twenty_nuls,
- "check pack H zero fills (utf8 source)");
- }
-+
-+SKIP:
-+{
-+ # [perl #131844] pointer addition overflow
-+ $Config{ptrsize} == 4
-+ or skip "[perl #131844] need 32-bit build for this test", 4;
-+ # prevent ASAN just crashing on the allocation failure
-+ local $ENV{ASAN_OPTIONS} = $ENV{ASAN_OPTIONS};
-+ $ENV{ASAN_OPTIONS} .= ",allocator_may_return_null=1";
-+ fresh_perl_like('pack "f999999999"', qr/Out of memory during pack/, { stderr => 1 },
-+ "pointer addition overflow");
-+
-+ # integer (STRLEN) overflow from addition of glen to current length
-+ fresh_perl_like('pack "c10f1073741823"', qr/Out of memory during pack/, { stderr => 1 },
-+ "integer overflow calculating allocation (addition)");
-+
-+ fresh_perl_like('pack "W10f536870913", 256', qr/Out of memory during pack/, { stderr => 1 },
-+ "integer overflow calculating allocation (utf8)");
-+
-+ fresh_perl_like('pack "c10f1073741824"', qr/Out of memory during pack/, { stderr => 1 },
-+ "integer overflow calculating allocation (multiply)");
-+}
---
-2.15.1-424-g9478a660812
-
diff --git a/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch b/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch
index c1db335e0..e4c3426b7 100644
--- a/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch
+++ b/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch
@@ -12,10 +12,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Makefile.SH | 147 ++++++++++++++++++++++++++++--------------------------------
1 file changed, 68 insertions(+), 79 deletions(-)
-Index: perl-5.24.1/Makefile.SH
+Index: perl-5.24.4/Makefile.SH
===================================================================
---- perl-5.24.1.orig/Makefile.SH
-+++ perl-5.24.1/Makefile.SH
+--- perl-5.24.4.orig/Makefile.SH
++++ perl-5.24.4/Makefile.SH
@@ -48,10 +48,10 @@ case "$useshrplib" in
true)
# Prefix all runs of 'miniperl' and 'perl' with
@@ -271,9 +271,9 @@ Index: perl-5.24.1/Makefile.SH
$(MINIPERL) autodoc.pl
pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
-@@ -1089,7 +1099,7 @@ pod/perl5241delta.pod: pod/perldelta.pod
- $(RMS) pod/perl5241delta.pod
- $(LNS) perldelta.pod pod/perl5241delta.pod
+@@ -1089,7 +1099,7 @@ pod/perl5244delta.pod: pod/perldelta.pod
+ $(RMS) pod/perl5244delta.pod
+ $(LNS) perldelta.pod pod/perl5244delta.pod
-extra.pods: $(MINIPERL_EXE)
+extra.pods:
diff --git a/poky/meta/recipes-devtools/perl/perl/config.sh b/poky/meta/recipes-devtools/perl/perl/config.sh
index ac0484ca6..b1b5834c7 100644
--- a/poky/meta/recipes-devtools/perl/perl/config.sh
+++ b/poky/meta/recipes-devtools/perl/perl/config.sh
@@ -14,7 +14,7 @@
: Configure command line arguments.
config_arg0='Configure'
-config_args='-des -Doptimize=-O2 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Open Embedded -Dinstallprefix=@EXECPREFIX@ -Dprefix=@EXECPREFIX@ -Dvendorprefix=@EXECPREFIX@ -Dsiteprefix=@EXECPREFIX@ -Dotherlibdirs=@LIBDIR@/perl/5.24.1 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Ud_dosuid -Dd_semctl_semun -Ui_db -Ui_ndbm -Ui_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=@USRBIN@/less -isr'
+config_args='-des -Doptimize=-O2 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Open Embedded -Dinstallprefix=@EXECPREFIX@ -Dprefix=@EXECPREFIX@ -Dvendorprefix=@EXECPREFIX@ -Dsiteprefix=@EXECPREFIX@ -Dotherlibdirs=@LIBDIR@/perl/5.24.4 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Ud_dosuid -Dd_semctl_semun -Ui_db -Ui_ndbm -Ui_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=@USRBIN@/less -isr'
config_argc=28
config_arg1='-des'
config_arg2='-Doptimize=-O2'
@@ -26,7 +26,7 @@ config_arg7='-Dinstallprefix=@EXECPREFIX@'
config_arg8='-Dprefix=@EXECPREFIX@'
config_arg9='-Dvendorprefix=@EXECPREFIX@'
config_arg10='-Dsiteprefix=@EXECPREFIX@'
-config_arg11='-Dotherlibdirs=@LIBDIR@/perl/5.24.1'
+config_arg11='-Dotherlibdirs=@LIBDIR@/perl/5.24.4'
config_arg12='-Duseshrplib'
config_arg13='-Dusethreads'
config_arg14='-Duseithreads'
@@ -64,13 +64,13 @@ alignbytes='8'
ansi2knr=''
aphostname=''
api_revision='5'
-api_subversion='1'
+api_subversion='4'
api_version='24'
-api_versionstring='5.24.1'
+api_versionstring='5.24.4'
ar='ar'
-archlib='@LIBDIR@/perl/5.24.1/@ARCH@-thread-multi'
-archlibexp='@STAGINGDIR@@LIBDIR@/perl/5.24.1/@ARCH@-thread-multi'
-archlib_exp='@LIBDIR@/perl/5.24.1/@ARCH@-thread-multi'
+archlib='@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi'
+archlibexp='@STAGINGDIR@@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi'
+archlib_exp='@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi'
archname64=''
archname='@ARCH@-thread-multi'
archobjs=''
@@ -88,7 +88,7 @@ castflags='0'
cat='cat'
cc='gcc'
cccdlflags='-fPIC'
-ccdlflags='-Wl,-E -Wl,-rpath,@LIBDIR@/perl/5.24.1/@ARCH@-thread-multi/CORE'
+ccdlflags='-Wl,-E -Wl,-rpath,@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi/CORE'
ccflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='gcc'
@@ -838,7 +838,7 @@ inc_version_list_init='0'
incpath=''
inews=''
initialinstalllocation='@USRBIN@'
-installarchlib='@LIBDIR@/perl/5.24.1/@ARCH@-thread-multi'
+installarchlib='@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi'
installbin='@USRBIN@'
installhtml1dir=''
installhtml3dir=''
@@ -846,23 +846,23 @@ installman1dir=''
installman3dir=''
installprefix='@EXECPREFIX@'
installprefixexp='@EXECPREFIX@'
-installprivlib='@LIBDIR@/perl/5.24.1'
+installprivlib='@LIBDIR@/perl/5.24.4'
installscript='@USRBIN@'
-installsitearch='@LIBDIR@/perl/site_perl/5.24.1/@ARCH@-thread-multi'
+installsitearch='@LIBDIR@/perl/site_perl/5.24.4/@ARCH@-thread-multi'
installsitebin='@USRBIN@'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='@LIBDIR@/perl/site_perl/5.24.1'
+installsitelib='@LIBDIR@/perl/site_perl/5.24.4'
installsiteman1dir=''
installsiteman3dir=''
installsitescript='@USRBIN@'
installstyle='lib/perl'
installusrbinperl='define'
-installvendorarch='@LIBDIR@/perl/vendor_perl/5.24.1/@ARCH@-thread-multi'
+installvendorarch='@LIBDIR@/perl/vendor_perl/5.24.4/@ARCH@-thread-multi'
installvendorbin='@USRBIN@'
installvendorhtml1dir=''
installvendorhtml3dir=''
-installvendorlib='@LIBDIR@/perl/vendor_perl/5.24.1'
+installvendorlib='@LIBDIR@/perl/vendor_perl/5.24.4'
installvendorman1dir=''
installvendorman3dir=''
installvendorscript='@USRBIN@'
@@ -965,7 +965,7 @@ optimize='-O2'
orderlib='false'
osname='linux'
osvers='3.19.5-yocto-standard'
-otherlibdirs='@LIBDIR@/perl/5.24.1'
+otherlibdirs='@LIBDIR@/perl/5.24.4'
package='perl'
pager='/usr/bin/less -isr'
passcat='cat /etc/passwd'
@@ -986,8 +986,8 @@ pmake=''
pr=''
prefix='@EXECPREFIX@'
prefixexp='@EXECPREFIX@'
-privlib='@LIBDIR@/perl/5.24.1'
-privlibexp='@LIBDIR@/perl/5.24.1'
+privlib='@LIBDIR@/perl/5.24.4'
+privlibexp='@LIBDIR@/perl/5.24.4'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='8'
@@ -1053,17 +1053,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
sig_size='69'
signal_t='void'
-sitearch='@LIBDIR@/perl/site_perl/5.24.1/@ARCH@-thread-multi'
-sitearchexp='@LIBDIR@/perl/site_perl/5.24.1/@ARCH@-thread-multi'
+sitearch='@LIBDIR@/perl/site_perl/5.24.4/@ARCH@-thread-multi'
+sitearchexp='@LIBDIR@/perl/site_perl/5.24.4/@ARCH@-thread-multi'
sitebin='@USRBIN@'
sitebinexp='@USRBIN@'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='@LIBDIR@/perl/site_perl/5.24.1'
+sitelib='@LIBDIR@/perl/site_perl/5.24.4'
sitelib_stem='@LIBDIR@/perl/site_perl'
-sitelibexp='@LIBDIR@/perl/site_perl/5.24.1'
+sitelibexp='@LIBDIR@/perl/site_perl/5.24.4'
siteman1dir=''
siteman1direxp=''
siteman3dir=''
@@ -1102,7 +1102,7 @@ stdio_stream_array=''
strerror_r_proto='REENTRANT_PROTO_B_IBW'
strings='@INCLUDEDIR@/string.h'
submit=''
-subversion='1'
+subversion='4'
sysman='@EXECPREFIX@/share/man/man1'
sysroot=''
tail=''
@@ -1182,17 +1182,17 @@ uvtype='unsigned long'
uvuformat='"lu"'
uvxformat='"lx"'
vaproto='define'
-vendorarch='@LIBDIR@/perl/vendor_perl/5.24.1/@ARCH@-thread-multi'
-vendorarchexp='@LIBDIR@/perl/vendor_perl/5.24.1/@ARCH@-thread-multi'
+vendorarch='@LIBDIR@/perl/vendor_perl/5.24.4/@ARCH@-thread-multi'
+vendorarchexp='@LIBDIR@/perl/vendor_perl/5.24.4/@ARCH@-thread-multi'
vendorbin='@USRBIN@'
vendorbinexp='@USRBIN@'
vendorhtml1dir=' '
vendorhtml1direxp=''
vendorhtml3dir=' '
vendorhtml3direxp=''
-vendorlib='@LIBDIR@/perl/vendor_perl/5.24.1'
+vendorlib='@LIBDIR@/perl/vendor_perl/5.24.4'
vendorlib_stem='@LIBDIR@/perl/vendor_perl'
-vendorlibexp='@LIBDIR@/perl/vendor_perl/5.24.1'
+vendorlibexp='@LIBDIR@/perl/vendor_perl/5.24.4'
vendorman1dir=' '
vendorman1direxp=''
vendorman3dir=' '
@@ -1201,8 +1201,8 @@ vendorprefix='@EXECPREFIX@'
vendorprefixexp='@EXECPREFIX@'
vendorscript='@USRBIN@'
vendorscriptexp='@USRBIN@'
-version='5.24.1'
-version_patchlevel_string='version 24 subversion 1'
+version='5.24.4'
+version_patchlevel_string='version 24 subversion 4'
versiononly='undef'
vi=''
xlibpth='@LIBDIR@/386 @BASELIBDIR@386'
@@ -1212,10 +1212,10 @@ zcat=''
zip='zip'
PERL_REVISION=5
PERL_VERSION=24
-PERL_SUBVERSION=1
+PERL_SUBVERSION=4
PERL_API_REVISION=5
PERL_API_VERSION=24
-PERL_API_SUBVERSION=1
+PERL_API_SUBVERSION=4
PERL_PATCHLEVEL=''
PERL_CONFIG_SH=true
: Variables propagated from previous config.sh file.
OpenPOWER on IntegriCloud