summaryrefslogtreecommitdiff
path: root/gprof/corefile.c
diff options
context:
space:
mode:
Diffstat (limited to 'gprof/corefile.c')
-rw-r--r--gprof/corefile.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gprof/corefile.c b/gprof/corefile.c
index 37942b564ad..93a0e94e554 100644
--- a/gprof/corefile.c
+++ b/gprof/corefile.c
@@ -553,6 +553,13 @@ core_create_syms_from (const char * sym_table_file)
if (type != 't' && type != 'T')
continue;
+ /* PR 20499 */
+ if ((symtab.limit - symtab.base) >= symtab.len)
+ {
+ fprintf (stderr, _("%s: too many symbols in file '%s'\n"), whoami, sym_table_file);
+ done (1);
+ }
+
sym_init (symtab.limit);
sscanf (address, "%" BFD_VMA_FMT "x", &(symtab.limit->addr) );