svn commit: r311348 - head/lib/libproc

Mark Johnston markj at FreeBSD.org
Thu Jan 5 02:33:11 UTC 2017


Author: markj
Date: Thu Jan  5 02:33:10 2017
New Revision: 311348
URL: https://svnweb.freebsd.org/changeset/base/311348

Log:
  Add a reasonable bound on the symbol table index size.

Modified:
  head/lib/libproc/proc_sym.c

Modified: head/lib/libproc/proc_sym.c
==============================================================================
--- head/lib/libproc/proc_sym.c	Thu Jan  5 02:04:53 2017	(r311347)
+++ head/lib/libproc/proc_sym.c	Thu Jan  5 02:33:10 2017	(r311348)
@@ -143,10 +143,12 @@ load_symtab(Elf *e, struct symtab *symta
 	if (scn == NULL)
 		return (-1);
 
-	if ((symtab->data = elf_getdata(scn, NULL)) == NULL)
+	nsyms = shdr.sh_size / shdr.sh_entsize;
+	if (nsyms > (1 << 20))
 		return (-1);
 
-	nsyms = shdr.sh_size / shdr.sh_entsize;
+	if ((symtab->data = elf_getdata(scn, NULL)) == NULL)
+		return (-1);
 
 	symtab->index = calloc(nsyms, sizeof(u_int));
 	if (symtab->index == NULL)


More information about the svn-src-head mailing list