-
在 Windows 2003 SP2 上的 IIS6 MDAC 版本 2.8 SP2 上提供经典 ASP 脚本的 Windows 2003 服务器(德语版)随机发生错误。应用程序使用 UTF-8 Unicode (utf8) 字符集连接到 MySQL Server 5.0.44-log。MySQL 服务器在 Gentoo Linux 上运行。
脚本错误偶尔发生在以下代码行:
SET my_conn = Server.CreateObject("ADODB.Connection") my_conn.Open ConnString <- ERROR
连接是 DSN 或显式连接字符串:
Driver={MySQL ODBC 5.1 Driver};SERVER=abc.abc.abc.abc;DATABASE=dbname;UID=uidname;PWD=pwdname;PORT=3306;OPTION=67108864;
该错误发生在使用 DNS 或连接字符串建立的连接上。
使用IISState和Debug Diagnostic Tool 1.0.0.152分析代码时,产生如下崩溃分析:
MYODBC5!UTF16TOUTF32+6In 4640-1242788336.dmp the assembly instruction at myodbc5!utf16toutf32+6 in C:\Programme\MySQL\Connector ODBC 5.1\myodbc5.dll from MySQL AB has caused an access violation exception (0xC0000005) when trying to read from memory location 0x194dd000 on thread 33
(漏洞 #44971)
连接器/ODBC 覆盖了查询日志。连接器/ODBC 已更改为附加日志,而不是覆盖它。(漏洞 #44965)
由于数据类型使用不正确,连接器/ODBC 无法使用 MySQL 5.1.30 构建
bool
。(漏洞 #42120)-
从当前数据库以外的数据库查询表时, 插入新记录使用与语句
SQLSetPos
中指定的数据库名称不对应 。SELECT
SQLSetPos
试图INSERT
在当前数据库中执行此操作,但SQL_ERROR
结果是来自 MySQL 服务器的“表不存在”消息。(漏洞 #41946) SQLDescribeCol()
使用 NULL 缓冲区和非零缓冲区长度 调用导致崩溃。(漏洞 #41942)连接器/ODBC 使用随机值更新了一些字段,而不是使用
NULL
. (漏洞 #41256)DECIMAL
当访问包含 类型的列时NULL
,Connector/ODBC 返回 0 而不是NULL
. (漏洞 #41081)在 Access 97 中,将包含
LONGTEXT
orTEXT
字段的表链接到连接器/ODBC DSN 时,字段显示为TEXT(255)
表结构。因此,数据被截断为 255 个字符。(缺陷号 40932)-
如果还指定 了输出缓冲区
SQLDriverConnect()
的 指针,则 调用NULL
会导致崩溃:SQL_DRIVER_NOPROMPT
SQLDriverConnect(dbc, NULL, "DSN=myodbc5", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT)
(缺陷号 40316)
将 ADO
Recordset
十进制字段值设置为 44.56 会导致在使用该方法更新记录集时存储不正确的值 445600.0000Update
。(漏洞 #39961)SQLTablesW
API 给出了错误 的结果。例如,表名和表类型返回为NULL
正确值而不是正确值。(漏洞 #39957)-
当客户端不支持的服务器上使用字符集时,连接器/ODBC 会崩溃,例如 cp1251:
[MySQL][ODBC 5.1 Driver][mysqld-5.0.27-community-nt]Restricted data type attribute violation
该修复导致连接器/ODBC 返回错误消息而不是崩溃。(漏洞 #39831)
-
绑定
SQL_C_BIT
到INTEGER
列不起作用。该
sql_get_data()
函数仅适用于与缓冲区BOOLEAN
对应的列。SQL_C_BIT
(漏洞 #39644) 当该
SQLTables
方法被调用并NULL
作为参数传递时 ,仅返回表名为 的tablename
一行 ,而不是给定数据库的所有表。(漏洞 #39561)resultset
NULL
该
SQLGetInfo()
函数返回 0 以SQL_CATALOG_USAGE
获取信息。(漏洞 #39560)-
如果连接字符串参数包含空格或制表符,则连接器/ODBC 5.1.5 无法连接。例如,如果将
SERVER
参数指定为 “ SERVER=localhost ”而不是 “ SERVER=localhost ”,则会显示以下错误消息:[MySQL][ODBC 5.1 Driver] Unknown MySQL server host ' localhost' (11001).
(漏洞 #39085)
由于包含 NULL 终止符,传递给
SQLDriverConnect
方法以检索输出连接字符串长度的指针比应有的长度大一。(漏洞 #38949)定位更新期间不支持执行数据参数。这意味着使用游标更新来更新长文本字段会错误地将值设置为 null。这会在更新数据库时导致错误
Column 'column_name' cannot be null
,即使column_name
已分配了一个有效的非空字符串。(漏洞 #37649)该
SQLDriverConnect
方法将参数截断OutputConnectionString
为 52 个字符。(漏洞 #37278)连接字符串选项
Enable Auto-reconnect
不起作用。当连接失败时,无法恢复,产生的错误与没有选择该选项一样。(漏洞 #37179)将数据插入
LONGTEXT
表字段不起作用。如果进行了这样的尝试,相应的字段将在检查时被发现为空,或者包含随机字符。(漏洞 #36071)没有返回 数据类型
SQLGetTypeInfo
的 结果记录。TIMESTAMP
应用程序将收到结果return code 100 (SQL_NO_DATA_FOUND)
。(缺陷号 30626)-
无法使用连接器/ODBC 连接到使用 SSL 的服务器。生成了以下错误:
Runtime error '-2147467259 (80004005)': [MySQL][ODBC 3.51 Driver]SSL connection error.
(漏洞 #29955)
-
当
recordSet.Update
调用函数更新adLongVarChar
字段时,字段被更新但记录集立即丢失。这发生在驱动程序游标上,无论游标是在乐观模式还是悲观模式下打开。当调用下一个更新时,测试代码将退出并出现以下错误:
-2147467259 : Query-based update failed because the row to update could not be found.
(漏洞 #26950)
Microsoft Access 无法
BIGINT
从只有两列类型BIGINT
和的表中正确读取值VARCHAR
。#DELETE
出现而不是正确的值。(漏洞 #17679)