summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorPaul Pluzhnikov <ppluzhnikov@google.com>2019-10-29 08:29:59 -0700
committerPaul Pluzhnikov <ppluzhnikov@gcc.gnu.org>2019-10-29 08:29:59 -0700
commit1c40e11956eff80fd9ec305206ea5aaf73ce4fd9 (patch)
treed46cf0eee687d99d7de85c1a8086c19fc9847136 /libiberty
parentfd46280df128333b51ab993341441d24636680be (diff)
cp-demangle.c (d_number): Avoid signed int overflow.
2019-10-29 Paul Pluzhnikov <ppluzhnikov@google.com> * cp-demangle.c (d_number): Avoid signed int overflow. From-SVN: r277575
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog4
-rw-r--r--libiberty/cp-demangle.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index bba2be8b81b..4992b15d681 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-29 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * cp-demangle.c (d_number): Avoid signed int overflow.
+
2019-10-28 Miguel Saldivar <saldivarcher@gmail.com>
* cp-demangle.c (d_print_mod): Add a space before printing `complex`
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 877ad359be1..5b674d7d93c 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -1717,7 +1717,7 @@ d_number (struct d_info *di)
}
if (ret > ((INT_MAX - (peek - '0')) / 10))
return -1;
- ret = ret * 10 + peek - '0';
+ ret = ret * 10 + (peek - '0');
d_advance (di, 1);
peek = d_peek_char (di);
}