summaryrefslogtreecommitdiffstats
path: root/src/corelib/plugin/qelfparser_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/plugin/qelfparser_p.cpp')
-rw-r--r--src/corelib/plugin/qelfparser_p.cpp48
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;