_bfd_mul_overflow
[deliverable/binutils-gdb.git] / bfd / elf32-m32c.c
index 70ccd6203abdc6acabc70a6fa5bc875031bcfd0f..89bdccacd062cf3c1dd035f3b6058847e9154e6e 100644 (file)
@@ -1491,10 +1491,14 @@ m32c_elf_relax_section
 
   if (shndx_hdr && shndx_hdr->sh_size != 0)
     {
-      bfd_size_type amt;
+      size_t amt;
 
-      amt = symtab_hdr->sh_info;
-      amt *= sizeof (Elf_External_Sym_Shndx);
+      if (_bfd_mul_overflow (symtab_hdr->sh_info,
+                            sizeof (Elf_External_Sym_Shndx), &amt))
+       {
+         bfd_set_error (bfd_error_file_too_big);
+         goto error_return;
+       }
       shndx_buf = (Elf_External_Sym_Shndx *) bfd_malloc (amt);
       if (shndx_buf == NULL)
        goto error_return;
This page took 0.022959 seconds and 4 git commands to generate.