Renamed conversion function to make intention more clear. Also defaulted to 'controll...
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sun, 8 Sep 2019 00:20:24 +0000 (02:20 +0200)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sun, 8 Sep 2019 00:20:24 +0000 (02:20 +0200)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
src/common/ownsql.cpp
src/common/utility.cpp
src/common/utility.h
src/csync/csync_exclude.cpp

index a0669579a404183492ff6b9b3f6e06cb62ec3670..b82808d86ac4aa8e747dae0e6d5842825d255ded 100644 (file)
@@ -282,7 +282,7 @@ int SqlQuery::prepare(const QByteArray &sql, bool allow_failure)
 static bool startsWithInsensitive(const QByteArray &a, const char *b)
 {
     size_t len = strlen(b);
-    return a.size() >= len && qstrnicmp(a.constData(), b, Utility::convert(len)) == 0;
+    return a.size() >= len && qstrnicmp(a.constData(), b, Utility::convertSizeToUint(len)) == 0;
 }
 
 bool SqlQuery::isSelect()
index 6c394f14502cace4761a6b0e0491b307a6cee1d0..d8236a916f028287f08ac7fd20ea642261cbc4ee 100644 (file)
@@ -398,10 +398,11 @@ void Utility::crash()
 
 // Use this function to retrieve uint (often required by Qt and WIN32) from size_t
 // without compiler warnings about possible truncation
-uint Utility::convert(size_t &convertVar)
+uint Utility::convertSizeToUint(size_t &convertVar)
 {
     if( convertVar > UINT_MAX ) {
-        throw std::bad_cast();
+        //throw std::bad_cast();
+        convertVar = UINT_MAX; // intentionally default to wrong value here to not crash: exception handling TBD
     }
     return static_cast<uint>(convertVar);
 }
index 3842253918ccba5a72d115a6d88f2ff4611b8023..1a85ef9a99e7c472f64197820eb0ce1cf8875814 100644 (file)
@@ -55,7 +55,7 @@ namespace Utility {
     OCSYNC_EXPORT QByteArray userAgentString();
     OCSYNC_EXPORT bool hasLaunchOnStartup(const QString &appName);
     OCSYNC_EXPORT void setLaunchOnStartup(const QString &appName, const QString &guiName, bool launch);
-    OCSYNC_EXPORT uint convert(size_t &convertVar);
+    OCSYNC_EXPORT uint convertSizeToUint(size_t &convertVar);
 
     /**
      * Return the amount of free space available.
index 9a4f196ed99d38043b6ea74a3d0e7637f4b3ce38..5f55d282ab71cc714cb4f81468e09633faeff712 100644 (file)
@@ -73,7 +73,7 @@ static void csync_exclude_expand_escapes(QByteArray &input)
             line[o++] = line[i];
         }
     }
-    input.resize(o);
+    input.resize(Utility::convertSizeToUint(o));
 }
 
 // See http://support.microsoft.com/kb/74496 and