SQLite。C++Builder 6 CodeGuard 中的 sqlite3.c 中存在大量"访问溢出算法 overrunresource 泄漏"

SQLite. Numerous 'access overrun' 'arithmetic overrun' 'resource leak' in sqlite3.c in C++Builder 6 CodeGuard

本文关键字:访问 溢出 泄漏 overrunresource 算法 存在 C++Builder CodeGuard 中的 sqlite3 SQLite      更新时间:2023-10-16

我有一个Borland C++Builder 6.0项目。在这个项目中,我使用SQLite库。我使用 sqlite3.c 文件(SQLite amalgamation 3.7.11)。一切正常。但是当我在 C++Builder 中启用 CodeGuard 时,CodeGuard 在 sqlite3.c 中给了我许多错误。就像"访问溢出"算术溢出"资源泄漏"一样。

我尝试在项目中将 100000 条记录插入到我的数据库中。执行此操作大约需要 130 秒,并且进程使用的内存根本没有增加。所以我认为实际上没有内存泄漏。

我的问题是:我应该认真对待 sqlite 中的 CodeGuard 错误吗?或者我可以忽略它们吗?也许它们是误报?或者C++Builder 6编译器不适合SQlite?

SQLite是真正可靠的代码。 BCB 6 是一个非常古老的编译器。

我建议SQLite代码没问题,但编译器在CodeGuard中生成错误代码或误报。

我通过使用定义的SQLITE_WIN32_MALLOC选项进行编译来摆脱这些警告,该选项将SQLite配置为使用Win32本机堆API而不是malloc()