diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-03-24 23:59:54 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-03-24 23:59:54 +0000 |
commit | 401101f9c8077911929d3f2b60a37098460a5d89 (patch) | |
tree | c2bef4719f6787550f0916aeaa8f4f403a9296af /dev-libs/tre/files/tre-issue55-part1.patch | |
parent | 4cbcc855382a06088e2f016f62cafdbcb7e40665 (diff) |
gentoo resync : 25.03.2022
Diffstat (limited to 'dev-libs/tre/files/tre-issue55-part1.patch')
-rw-r--r-- | dev-libs/tre/files/tre-issue55-part1.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/dev-libs/tre/files/tre-issue55-part1.patch b/dev-libs/tre/files/tre-issue55-part1.patch new file mode 100644 index 000000000000..8e12cf683030 --- /dev/null +++ b/dev-libs/tre/files/tre-issue55-part1.patch @@ -0,0 +1,28 @@ +--- a/lib/tre-parse.c ++++ b/lib/tre-parse.c +@@ -582,16 +582,23 @@ + tre_parse_int(const tre_char_t **regex, const tre_char_t *regex_end) + { + int num = -1; ++ int overflow = 0; + const tre_char_t *r = *regex; + while (r < regex_end && *r >= L'0' && *r <= L'9') + { + if (num < 0) + num = 0; +- num = num * 10 + *r - L'0'; ++ if (num <= (INT_MAX - 9) / 10) { ++ num = num * 10 + *r - L'0'; ++ } else { ++ /* This digit could cause an integer overflow. We do not return ++ * directly; instead, consume all remaining digits. */ ++ overflow = 1; ++ } + r++; + } + *regex = r; +- return num; ++ return overflow ? -1 : num; + } + + |