diff options
Diffstat (limited to 'libdwfl/dwfl_segment_report_module.c')
-rw-r--r-- | libdwfl/dwfl_segment_report_module.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index 840d6f44..78c70795 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c | |||
@@ -787,6 +787,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, | |||
787 | if (dyn_data_size != 0) | 787 | if (dyn_data_size != 0) |
788 | dyn_filesz = dyn_data_size; | 788 | dyn_filesz = dyn_data_size; |
789 | 789 | ||
790 | if ((dyn_filesz / dyn_entsize) == 0 | ||
791 | || dyn_filesz > (SIZE_MAX / dyn_entsize)) | ||
792 | goto out; | ||
790 | void *dyns = malloc (dyn_filesz); | 793 | void *dyns = malloc (dyn_filesz); |
791 | Elf32_Dyn *d32 = dyns; | 794 | Elf32_Dyn *d32 = dyns; |
792 | Elf64_Dyn *d64 = dyns; | 795 | Elf64_Dyn *d64 = dyns; |