diff options
Diffstat (limited to 'src/corelib/plugin/qelfparser_p.cpp')
-rw-r--r-- | src/corelib/plugin/qelfparser_p.cpp | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/src/corelib/plugin/qelfparser_p.cpp b/src/corelib/plugin/qelfparser_p.cpp index 85478e376e..7a42b0d023 100644 --- a/src/corelib/plugin/qelfparser_p.cpp +++ b/src/corelib/plugin/qelfparser_p.cpp @@ -71,7 +71,7 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library if (fdlen < 64){ if (lib) - lib->errorString = QLibrary::tr("'%1' is not an ELF object (%2)").arg(library).arg(QLatin1String("file too small")); + lib->errorString = QLibrary::tr("'%1' is not an ELF object (%2)").arg(library, QLibrary::tr("file too small")); return NotElf; } const char *data = dataStart; @@ -83,7 +83,7 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library // 32 or 64 bit if (data[4] != 1 && data[4] != 2) { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library).arg(QLatin1String("odd cpu architecture")); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library, QLibrary::tr("odd cpu architecture")); return Corrupt; } m_bits = (data[4] << 5); @@ -93,13 +93,13 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library */ if ((sizeof(void*) == 4 && m_bits != 32) || (sizeof(void*) == 8 && m_bits != 64)) { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library).arg(QLatin1String("wrong cpu architecture")); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library, QLibrary::tr("wrong cpu architecture")); return Corrupt; } // endian if (data[5] == 0) { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library).arg(QLatin1String("odd endianness")); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library, QLibrary::tr("odd endianness")); return Corrupt; } m_endian = (data[5] == 1 ? ElfLittleEndian : ElfBigEndian); @@ -119,7 +119,7 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library if (e_shsize > fdlen) { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library).arg(QLatin1String("unexpected e_shsize")); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library, QLibrary::tr("unexpected e_shsize")); return Corrupt; } @@ -131,7 +131,7 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library if (e_shentsize % 4){ if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library).arg(QLatin1String("unexpected e_shentsize")); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library, QLibrary::tr("unexpected e_shentsize")); return Corrupt; } data += sizeof(qelfhalf_t); // e_shentsize @@ -141,10 +141,12 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library data += sizeof(qelfhalf_t); // e_shtrndx if ((quint32)(e_shnum * e_shentsize) > fdlen) { - if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library) - .arg(QLatin1String("announced %2 sections, each %3 bytes, exceed file size")) - .arg(e_shnum).arg(e_shentsize); + if (lib) { + const QString message = + QLibrary::tr("announced %n section(s), each %1 byte(s), exceed file size", + nullptr, int(e_shnum)).arg(e_shentsize); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library, message); + } return Corrupt; } @@ -157,9 +159,9 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library if ((soff + e_shentsize) > fdlen || soff % 4 || soff == 0) { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library) - .arg(QLatin1String("shstrtab section header seems to be at %1")) - .arg(QString::number(soff, 16)); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") + .arg(library, QLibrary::tr("shstrtab section header seems to be at %1") + .arg(QString::number(soff, 16))); return Corrupt; } @@ -168,9 +170,9 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library if ((quint32)(m_stringTableFileOffset + e_shentsize) >= fdlen || m_stringTableFileOffset == 0) { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library) - .arg(QLatin1String("string table seems to be at %1")) - .arg(QString::number(soff, 16)); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") + .arg(library, QLibrary::tr("string table seems to be at %1") + .arg(QString::number(soff, 16))); return Corrupt; } @@ -190,9 +192,9 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library if (m_stringTableFileOffset + sh.name > fdlen) { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library) - .arg(QLatin1String("section name %2 of %3 behind end of file")) - .arg(i).arg(e_shnum); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") + .arg(library, QLibrary::tr("section name %1 of %2 behind end of file") + .arg(i).arg(e_shnum)); return Corrupt; } @@ -204,8 +206,8 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library if (!(sh.type & 0x1)) { if (shnam[1] == 'r') { if (lib) - lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)").arg(library) - .arg(QLatin1String("empty .rodata. not a library.")); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") + .arg(library, QLibrary::tr("empty .rodata. not a library.")); return Corrupt; } #if defined(QELFPARSER_DEBUG) @@ -217,8 +219,8 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library 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.")); + lib->errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") + .arg(library, QLibrary::tr("missing section data. This is not a library.")); return Corrupt; } *pos = sh.offset; |