From 011d97f5da8692db79ee4ffb893a7a3c8599a2e0 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 21 Sep 2021 14:31:02 +0300 Subject: [PATCH] correct strcmp() and strncmp() return value checks Signed-off-by: Ivailo Monev --- src/core/kernel/qmetatype.cpp | 2 +- src/core/kernel/qobjectdefs.h | 2 +- src/dbus/qdbusabstractadaptor.cpp | 2 +- src/dbus/qdbusinterface.cpp | 2 +- src/script/bridge/qscriptqobject.cpp | 2 +- src/test/qtestlogger.cpp | 11 ++++------- src/test/qtestxmlstreamer.cpp | 6 +++--- src/test/qxmltestlogger.cpp | 2 +- src/tools/moc/generator.cpp | 6 +++--- 9 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/core/kernel/qmetatype.cpp b/src/core/kernel/qmetatype.cpp index ecefe2d9a..974879cbf 100644 --- a/src/core/kernel/qmetatype.cpp +++ b/src/core/kernel/qmetatype.cpp @@ -419,7 +419,7 @@ static int qMetaTypeCustomType_unlocked(const char *typeName, int length) for (int v = 0; v < ct->count(); ++v) { const QCustomTypeInfo &customInfo = ct->at(v); if ((length == customInfo.typeName.size()) - && !strcmp(typeName, customInfo.typeName.constData())) { + && strcmp(typeName, customInfo.typeName.constData()) == 0) { if (customInfo.alias >= 0) return customInfo.alias; return v + QMetaType::User; diff --git a/src/core/kernel/qobjectdefs.h b/src/core/kernel/qobjectdefs.h index d8cb33184..e4d3fc9ce 100644 --- a/src/core/kernel/qobjectdefs.h +++ b/src/core/kernel/qobjectdefs.h @@ -32,7 +32,7 @@ class QByteArray; class QString; -#define Q_MOC_OUTPUT_REVISION 65 +#define Q_MOC_OUTPUT_REVISION 66 // The following macros are our "extensions" to C++ // They are used, strictly speaking, only by the moc. diff --git a/src/dbus/qdbusabstractadaptor.cpp b/src/dbus/qdbusabstractadaptor.cpp index b46923f19..f924478e3 100644 --- a/src/dbus/qdbusabstractadaptor.cpp +++ b/src/dbus/qdbusabstractadaptor.cpp @@ -356,7 +356,7 @@ const QMetaObject *QDBusAdaptorConnector::metaObject() const void *QDBusAdaptorConnector::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_QDBusAdaptorConnector)) + if (strcmp(_clname, qt_meta_stringdata_QDBusAdaptorConnector) == 0) return static_cast(const_cast< QDBusAdaptorConnector*>(this)); return QObject::qt_metacast(_clname); } diff --git a/src/dbus/qdbusinterface.cpp b/src/dbus/qdbusinterface.cpp index ae11bbeee..fdf5e17a5 100644 --- a/src/dbus/qdbusinterface.cpp +++ b/src/dbus/qdbusinterface.cpp @@ -225,7 +225,7 @@ const QMetaObject *QDBusInterface::metaObject() const void *QDBusInterface::qt_metacast(const char *_clname) { if (!_clname) return 0; - if (!strcmp(_clname, "QDBusInterface")) + if (strcmp(_clname, "QDBusInterface") == 0) return static_cast(this); if (d_func()->interface.toLatin1() == _clname) return static_cast(this); diff --git a/src/script/bridge/qscriptqobject.cpp b/src/script/bridge/qscriptqobject.cpp index e1e4e5b6e..06855a843 100644 --- a/src/script/bridge/qscriptqobject.cpp +++ b/src/script/bridge/qscriptqobject.cpp @@ -2111,7 +2111,7 @@ const QMetaObject *QScript::QObjectConnectionManager::metaObject() const void *QScript::QObjectConnectionManager::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_QScript__QObjectConnectionManager)) + if (strcmp(_clname, qt_meta_stringdata_QScript__QObjectConnectionManager) == 0) return static_cast(this); return QObject::qt_metacast(_clname); } diff --git a/src/test/qtestlogger.cpp b/src/test/qtestlogger.cpp index 99441155b..9323eceb0 100644 --- a/src/test/qtestlogger.cpp +++ b/src/test/qtestlogger.cpp @@ -209,20 +209,17 @@ void QTestLogger::addIncident(IncidentTypes type, const char *description, if (resultAttr) { const char* oldResult = resultAttr->value(); bool overwrite = false; - if (!strcmp(oldResult, "pass")) { + if (strcmp(oldResult, "pass") == 0) { overwrite = true; - } - else if (!strcmp(oldResult, "xfail")) { + } else if (strcmp(oldResult, "xfail") == 0) { overwrite = (type == QAbstractTestLogger::XPass || type == QAbstractTestLogger::Fail); - } - else if (!strcmp(oldResult, "xpass")) { + } else if (strcmp(oldResult, "xpass") == 0) { overwrite = (type == QAbstractTestLogger::Fail); } if (overwrite) { resultAttr->setPair(QTest::AI_Result, typeBuf); } - } - else { + } else { currentLogElement->addAttribute(QTest::AI_Result, typeBuf); } diff --git a/src/test/qtestxmlstreamer.cpp b/src/test/qtestxmlstreamer.cpp index 11b9180d4..ed25bde9a 100644 --- a/src/test/qtestxmlstreamer.cpp +++ b/src/test/qtestxmlstreamer.cpp @@ -139,10 +139,10 @@ void QTestXmlStreamer::formatEnd(const QTestElement *element, QTestCharBuffer *f if (element->elementType() == QTest::LET_TestCase) { bool failed = false; for (QTestElement* child = element->childElements(); child; child = child->nextElement()) { - if ( child->elementType() == QTest::LET_Failure + if (child->elementType() == QTest::LET_Failure && child->attribute(QTest::AI_Result) - && ( !strcmp(child->attributeValue(QTest::AI_Result), "fail") - || !strcmp(child->attributeValue(QTest::AI_Result), "xpass")) + && (strcmp(child->attributeValue(QTest::AI_Result), "fail") == 0 + || strcmp(child->attributeValue(QTest::AI_Result), "xpass") == 0) ) { failed = true; diff --git a/src/test/qxmltestlogger.cpp b/src/test/qxmltestlogger.cpp index 9d80cf4f9..9da6a19bb 100644 --- a/src/test/qxmltestlogger.cpp +++ b/src/test/qxmltestlogger.cpp @@ -363,7 +363,7 @@ int QXmlTestLogger::xmlCdata(QTestCharBuffer *destBuf, char const* src, size_t n return (dest-begin); } - if (!strncmp(src, CDATA_END, sizeof(CDATA_END)-1)) { + if (strncmp(src, CDATA_END, sizeof(CDATA_END)-1) == 0) { if (dest + sizeof(CDATA_END_ESCAPED) < end) { strcpy(dest, CDATA_END_ESCAPED); src += sizeof(CDATA_END)-1; diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 7e5686c8d..e756d2fdb 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -347,20 +347,20 @@ void Generator::generateCode() // fprintf(out, "\nvoid *%s::qt_metacast(const char *_clname)\n{\n", cdef->qualified.constData()); fprintf(out, " if (!_clname) return nullptr;\n"); - fprintf(out, " if (!strcmp(_clname, qt_meta_stringdata_%s))\n" + fprintf(out, " if (strcmp(_clname, qt_meta_stringdata_%s) == 0)\n" " return static_cast(this);\n", qualifiedClassNameIdentifier.constData()); for (int i = 1; i < cdef->superclassList.size(); ++i) { // for all superclasses but the first one if (cdef->superclassList.at(i).second == FunctionDef::Private) continue; const char *cname = cdef->superclassList.at(i).first.constData(); - fprintf(out, " if (!strcmp(_clname, \"%s\"))\n return static_cast<%s*>(const_cast<%s*>(this));\n", + fprintf(out, " if (strcmp(_clname, \"%s\") == 0)\n return static_cast<%s*>(const_cast<%s*>(this));\n", cname, cname, cdef->classname.constData()); } for (int i = 0; i < cdef->interfaceList.size(); ++i) { const QList &iface = cdef->interfaceList.at(i); for (int j = 0; j < iface.size(); ++j) { - fprintf(out, " if (!strcmp(_clname, %s))\n return ", iface.at(j).interfaceId.constData()); + fprintf(out, " if (strcmp(_clname, %s) == 0)\n return ", iface.at(j).interfaceId.constData()); for (int k = j; k >= 0; --k) fprintf(out, "static_cast<%s*>(", iface.at(k).className.constData()); fprintf(out, "const_cast<%s*>(this)%s;\n", -- 2.11.0