mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-09-19 02:27:55 +08:00
Check outpout buffers in ODBC SQLGetInfo
This commit is contained in:
@@ -1864,29 +1864,46 @@ static SQLRETURN SQL_API _SQLGetInfo(
|
||||
TRACE("_SQLGetInfo");
|
||||
switch (fInfoType) {
|
||||
case SQL_MAX_STATEMENT_LEN:
|
||||
if (rgbInfoValue)
|
||||
*((SQLUINTEGER *)rgbInfoValue) = (SQLUINTEGER)65000;
|
||||
if (pcbInfoValue)
|
||||
*pcbInfoValue = sizeof(SQLUINTEGER);
|
||||
break;
|
||||
case SQL_SCHEMA_USAGE:
|
||||
if (rgbInfoValue)
|
||||
*((SQLSMALLINT *)rgbInfoValue) = (SQLSMALLINT)0;
|
||||
if (pcbInfoValue)
|
||||
*pcbInfoValue = sizeof(SQLSMALLINT);
|
||||
break;
|
||||
case SQL_CATALOG_NAME_SEPARATOR:
|
||||
if (rgbInfoValue)
|
||||
memcpy(rgbInfoValue, ".", 1);
|
||||
if (pcbInfoValue)
|
||||
*pcbInfoValue = 1;
|
||||
break;
|
||||
case SQL_CATALOG_LOCATION:
|
||||
if (rgbInfoValue)
|
||||
*((SQLSMALLINT *)rgbInfoValue) = (SQLSMALLINT)1;
|
||||
if (pcbInfoValue)
|
||||
*pcbInfoValue = sizeof(SQLSMALLINT);
|
||||
break;
|
||||
case SQL_IDENTIFIER_QUOTE_CHAR:
|
||||
if (rgbInfoValue)
|
||||
memcpy(rgbInfoValue, "\"", 1);
|
||||
if (pcbInfoValue)
|
||||
*pcbInfoValue = 1;
|
||||
break;
|
||||
case SQL_DBMS_NAME:
|
||||
memcpy(rgbInfoValue,"MDBTOOLS",8);
|
||||
*pcbInfoValue = 8;
|
||||
if (rgbInfoValue)
|
||||
strncpy(rgbInfoValue, "MDBTOOLS", cbInfoValueMax);
|
||||
if (pcbInfoValue)
|
||||
*pcbInfoValue = 9;
|
||||
break;
|
||||
default:
|
||||
if (pcbInfoValue)
|
||||
*pcbInfoValue = 0;
|
||||
strcpy(sqlState, "HYC00");
|
||||
return SQL_ERROR;
|
||||
}
|
||||
|
||||
return SQL_SUCCESS;
|
||||
|
Reference in New Issue
Block a user