Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
None
Description
https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/c-data-types?view=sql-server-ver16
Also, SQL_FLOAT should be mapped to SQL_C_DOUBLE, and not SQL_C_FLOAT.
In particular, this can cause.
SQLFLOAT has size 8 bytes - basically it's defined as double, and SQLREAL has size 4 bytes - it is float. In most cases this cause no problem, but can crash application if a rowset(array of rows) is fetched using column-wise binding, and one of fields is fetched to SQL_C_FLOAT buffer. In this case, because of the wrong assumed single field buffer size, connector calculates wrong address to write values from following rows values, and eventually can write past boundary of the allocated array. Correct mapping fixes that issue
Attachments
Issue Links
- blocks
-
MXS-2709 ETL / Data Migration Service
- Closed