aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2018-11-09 11:44:20 -0800
committerJohn Baldwin <jhb@FreeBSD.org>2018-11-09 11:44:20 -0800
commit9c122c7f9c8260d2cceb1e8f29d69607531f43ba (patch)
tree7cfc3723e505de7edd8fad4e1654086477fc3d55
parent4b905ae1b4d5f90e5737ee01ab4b7149be8c1fe5 (diff)
downloadgdb-9c122c7f9c8260d2cceb1e8f29d69607531f43ba.zip
gdb-9c122c7f9c8260d2cceb1e8f29d69607531f43ba.tar.gz
gdb-9c122c7f9c8260d2cceb1e8f29d69607531f43ba.tar.bz2
Fix unsigned overflow in minsyms reader.
Use a ssize_t helper variable for the number of bytes to shrink the msymbols obstack rather than relying on unsigned overflow to shrink the size of the obstack. gdb/ChangeLog: * minsyms.c (minimal_symbol_reader::install): Fix unsigned overflow.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/minsyms.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b6c612b..4a79364 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2018-11-09 John Baldwin <jhb@FreeBSD.org>
+
+ * minsyms.c (minimal_symbol_reader::install): Fix unsigned
+ overflow.
+
2018-11-09 Hafiz Abid Qadeer <abidh@codesourcery.com>
* configure: Regenerate.
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 4409e6f..0f85442 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -1375,8 +1375,9 @@ minimal_symbol_reader::install ()
mcount = compact_minimal_symbols (msymbols, mcount, m_objfile);
- obstack_blank_fast (&m_objfile->per_bfd->storage_obstack,
- (mcount + 1 - alloc_count) * sizeof (struct minimal_symbol));
+ ssize_t shrink_bytes
+ = (mcount + 1 - alloc_count) * sizeof (struct minimal_symbol);
+ obstack_blank_fast (&m_objfile->per_bfd->storage_obstack, shrink_bytes);
msymbols = (struct minimal_symbol *)
obstack_finish (&m_objfile->per_bfd->storage_obstack);