QElfParser: double check section size before using it.
In rare cases, if the section is empty, we're reading the whole object into memory because size -1 = UINT_MAX. Change-Id: Ibf9a1534159ce626e4f2327536076d0cc1ebf0ba Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
parent
7f3f3a0858
commit
d5000e82e3
@ -218,7 +218,7 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sh.offset == 0 || (sh.offset + sh.size) > fdlen) {
|
||||
if (sh.offset == 0 || (sh.offset + sh.size) > fdlen || sh.size < 1) {
|
||||
if (lib)
|
||||
lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library)
|
||||
.arg(QLatin1String("missing section data. This is not a library."));
|
||||
|
Loading…
x
Reference in New Issue
Block a user