summaryrefslogtreecommitdiffstats
path: root/Source/cmELF.cxx
diff options
context:
space:
mode:
authorTy Smith <tyfighter@gmail.com>2015-11-19 17:04:34 (GMT)
committerBrad King <brad.king@kitware.com>2015-11-19 18:20:21 (GMT)
commitf5cd92a82600067835c05c7e82726161a150a50b (patch)
treecc126f6681e8ccbb78a7ad1f52d28d5c17cbba4c /Source/cmELF.cxx
parentb4a2ada297214119647b26df8abe394cd73ca53a (diff)
downloadCMake-f5cd92a82600067835c05c7e82726161a150a50b.zip
CMake-f5cd92a82600067835c05c7e82726161a150a50b.tar.gz
CMake-f5cd92a82600067835c05c7e82726161a150a50b.tar.bz2
cmELF: Avoid divide by zero if there are no dynamic section entries
Diffstat (limited to 'Source/cmELF.cxx')
-rw-r--r--Source/cmELF.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx
index d062987..37dd328 100644
--- a/Source/cmELF.cxx
+++ b/Source/cmELF.cxx
@@ -567,8 +567,14 @@ bool cmELFInternalImpl<Types>::LoadDynamicSection()
return true;
}
- // Allocate the dynamic section entries.
+ // If there are no entries we are done.
ELF_Shdr const& sec = this->SectionHeaders[this->DynamicSectionIndex];
+ if(sec.sh_entsize == 0)
+ {
+ return false;
+ }
+
+ // Allocate the dynamic section entries.
int n = static_cast<int>(sec.sh_size / sec.sh_entsize);
this->DynamicSectionEntries.resize(n);