6.3.1版mysql.data.dll的一个Bug

2 篇文章 0 订阅
1 篇文章 0 订阅

今天测出了mysql.data.dll 版本6.3.1的bug。text类型的数据,长度超过一定长度时,逻辑上的错误,造成MySql.Data.MySqlClient.MySqlPacket.ReadString(Int64 length)中的length变量保持为初值-1,再调System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count)时count为-1出错。

经测试,最新的6.5.4修复了这个Bug。

bug如下。
[类型] ArgumentOutOfRangeException
[Message] 要求非负数。
参数名: count
[StackTrace]
   在 System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   在 MySql.Data.MySqlClient.MySqlPacket.ReadString(Int64 length)
   在 MySql.Data.Types.MySqlString.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket packet, Int64 length, Boolean nullVal)
   在 MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue valObject)
   在 MySql.Data.MySqlClient.ResultSet.get_Item(Int32 index)
   在 MySql.Data.MySqlClient.MySqlDataReader.GetFieldValue(Int32 index, Boolean checkNull)
   在 MySql.Data.MySqlClient.MySqlDataReader.GetValue(Int32 i)
   在 MySql.Data.MySqlClient.MySqlDataReader.GetValues(Object[] values)
   在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
   在 System.Data.ProviderBase.SchemaMapping.LoadDataRow()
   在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
   在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值