summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch')
-rw-r--r--meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch15
1 files changed, 3 insertions, 12 deletions
diff --git a/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch b/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch
index 0f2a4307cc..89437bba74 100644
--- a/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch
+++ b/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch
@@ -20,22 +20,13 @@ Signed-off-by: Joe Slater <joe.slater@windriver.com>
20 20
21--- ruby-2.4.1.orig/regparse.c 21--- ruby-2.4.1.orig/regparse.c
22+++ ruby-2.4.1/regparse.c 22+++ ruby-2.4.1/regparse.c
23@@ -3644,7 +3644,7 @@ fetch_token(OnigToken* tok, UChar** src,
24 if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) {
25 prev = p;
26 num = scan_unsigned_octal_number(&p, end, (c == '0' ? 2:3), enc);
27- if (num < 0) return ONIGERR_TOO_BIG_NUMBER;
28+ if (num < 0 || 0xff < num) return ONIGERR_TOO_BIG_NUMBER;
29 if (p == prev) { /* can't read nothing. */
30 num = 0; /* but, it's not error */
31 }
32@@ -4450,6 +4450,9 @@ next_state_val(CClassNode* cc, CClassNod 23@@ -4450,6 +4450,9 @@ next_state_val(CClassNode* cc, CClassNod
33 switch (*state) { 24 switch (*state) {
34 case CCS_VALUE: 25 case CCS_VALUE:
35 if (*type == CCV_SB) { 26 if (*type == CCV_SB) {
36+ if (*vs > 0xff) 27+ if (*from > 0xff)
37+ return ONIGERR_INVALID_CODE_POINT_VALUE; 28+ return ONIGERR_INVALID_CODE_POINT_VALUE;
38+ 29+
39 BITSET_SET_BIT_CHKDUP(cc->bs, (int )(*vs)); 30 BITSET_SET_BIT_CHKDUP(cc->bs, (int )(*from));
40 if (IS_NOT_NULL(asc_cc)) 31 if (IS_NOT_NULL(asc_cc))
41 BITSET_SET_BIT(asc_cc->bs, (int )(*vs)); 32 BITSET_SET_BIT(asc_cc->bs, (int )(*from));