diff --git a/extensions/sqlite/driver/SqDatabase.cpp b/extensions/sqlite/driver/SqDatabase.cpp index e0f13e80..a4f03a89 100644 --- a/extensions/sqlite/driver/SqDatabase.cpp +++ b/extensions/sqlite/driver/SqDatabase.cpp @@ -84,6 +84,18 @@ IDBDriver *SqDatabase::GetDriver() bool SqDatabase::QuoteString(const char *str, char buffer[], size_t maxlen, size_t *newSize) { + unsigned long size = static_cast(strlen(str)); + unsigned long needed = size * 2 + 1; + + if (maxlen < needed) + { + if (newSize != NULL) + { + *newSize = (size_t)needed; + } + return false; + } + char *res = sqlite3_snprintf(static_cast(maxlen), buffer, "%q", str); if (res != NULL && newSize != NULL)