Fix unsigned overflow in minsyms reader.
Commit Message
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.
---
gdb/ChangeLog | 5 +++++
gdb/minsyms.c | 5 +++--
2 files changed, 8 insertions(+), 2 deletions(-)
Comments
On Tue, 6 Nov 2018 11:04:23 -0800
John Baldwin <jhb@FreeBSD.org> wrote:
> 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.
Okay.
Kevin
@@ -1,3 +1,8 @@
+2018-11-06 John Baldwin <jhb@FreeBSD.org>
+
+ * minsyms.c (minimal_symbol_reader::install): Fix unsigned
+ overflow.
+
2018-11-06 John Baldwin <jhb@FreeBSD.org>
* riscv-fbsd-nat.c (getregs_supplies): Return true for
@@ -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);