diff options
Diffstat (limited to 'src/corelib/io')
-rw-r--r-- | src/corelib/io/qresource.cpp | 5 | ||||
-rw-r--r-- | src/corelib/io/qsettings.cpp | 12 | ||||
-rw-r--r-- | src/corelib/io/qsettings.h | 2 |
3 files changed, 11 insertions, 8 deletions
diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp index 19ce9ef517..8a0d2e0200 100644 --- a/src/corelib/io/qresource.cpp +++ b/src/corelib/io/qresource.cpp @@ -54,6 +54,7 @@ #include <qplatformdefs.h> #include <qendian.h> #include "private/qabstractfileengine_p.h" +#include "private/qnumeric_p.h" #include "private/qsimd_p.h" #include "private/qsystemerror_p.h" @@ -1502,7 +1503,9 @@ uchar *QResourceFileEnginePrivate::map(qint64 offset, qint64 size, QFile::Memory { Q_Q(QResourceFileEngine); Q_UNUSED(flags); - if (offset < 0 || size <= 0 || !resource.isValid() || offset + size > resource.size()) { + qint64 end; + if (offset < 0 || size <= 0 || !resource.isValid() || + add_overflow(offset, size, &end) || end > resource.size()) { q->setError(QFile::UnspecifiedError, QString()); return 0; } diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index 391d2a49af..8b9f7bc9e5 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -54,7 +54,7 @@ #include "qstandardpaths.h" #include <qdatastream.h> -#ifndef QT_NO_TEXTCODEC +#if QT_CONFIG(textcodec) # include "qtextcodec.h" #endif @@ -681,7 +681,7 @@ void QSettingsPrivate::iniEscapedString(const QString &str, QByteArray &result, if (ch <= 0x1F || (ch >= 0x7F && !useCodec)) { result += "\\x" + QByteArray::number(ch, 16); escapeNextIfDigit = true; -#ifndef QT_NO_TEXTCODEC +#if QT_CONFIG(textcodec) } else if (useCodec) { // slow result += codec->fromUnicode(&unicode[i], 1); @@ -834,7 +834,7 @@ StNormal: ++j; } -#ifdef QT_NO_TEXTCODEC +#if !QT_CONFIG(textcodec) Q_UNUSED(codec) #else if (codec) { @@ -1679,7 +1679,7 @@ bool QConfFileSettingsPrivate::readIniFile(const QByteArray &data, int sectionPosition = 0; bool ok = true; -#ifndef QT_NO_TEXTCODEC +#if QT_CONFIG(textcodec) // detect utf8 BOM const uchar *dd = (const uchar *)data.constData(); if (data.size() >= 3 && dd[0] == 0xef && dd[1] == 0xbb && dd[2] == 0xbf) { @@ -2835,7 +2835,7 @@ QString QSettings::applicationName() const return d->applicationName; } -#ifndef QT_NO_TEXTCODEC +#if QT_CONFIG(textcodec) /*! \since 4.5 @@ -2888,7 +2888,7 @@ QTextCodec *QSettings::iniCodec() const return d->iniCodec; } -#endif // QT_NO_TEXTCODEC +#endif // textcodec /*! Returns a status code indicating the first error that was met by diff --git a/src/corelib/io/qsettings.h b/src/corelib/io/qsettings.h index d78edd23a2..ccfec787a6 100644 --- a/src/corelib/io/qsettings.h +++ b/src/corelib/io/qsettings.h @@ -178,7 +178,7 @@ public: QString organizationName() const; QString applicationName() const; -#ifndef QT_NO_TEXTCODEC +#if QT_CONFIG(textcodec) void setIniCodec(QTextCodec *codec); void setIniCodec(const char *codecName); QTextCodec *iniCodec() const; |