summaryrefslogtreecommitdiffstats
path: root/libelf/elf_getarsym.c
diff options
context:
space:
mode:
Diffstat (limited to 'libelf/elf_getarsym.c')
-rw-r--r--libelf/elf_getarsym.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libelf/elf_getarsym.c b/libelf/elf_getarsym.c
index d0bb28a9..3579fc18 100644
--- a/libelf/elf_getarsym.c
+++ b/libelf/elf_getarsym.c
@@ -183,6 +183,9 @@ elf_getarsym (elf, ptr)
size_t index_size = atol (tmpbuf);
if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size
+#if SIZE_MAX <= 4294967295U
+ || n >= SIZE_MAX / sizeof (Elf_Arsym)
+#endif
|| n * w > index_size)
{
/* This index table cannot be right since it does not fit into