]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9727: raise size limit on unkown size odbc column data from 256 to 16k
authorMike Jerris <mike@jerris.com>
Fri, 11 Nov 2016 20:13:36 +0000 (14:13 -0600)
committerMike Jerris <mike@jerris.com>
Fri, 11 Nov 2016 20:13:50 +0000 (14:13 -0600)
src/switch_odbc.c

index 04078c9c5f092a0af8a335556f6b8a5b6e33ffa7..cef334fb46d4d95630a18ecbab738b09eb91ec66 100644 (file)
@@ -611,13 +611,17 @@ SWITCH_DECLARE(switch_odbc_status_t) switch_odbc_handle_callback_exec_detailed(c
                        SQLDescribeCol(stmt, x, (SQLCHAR *) names[y], (SQLSMALLINT) name_len, &NameLength, &DataType, &ColumnSize, &DecimalDigits, &Nullable);
 
                        if (!ColumnSize) {
-                               ColumnSize = 255;
+                               SQLCHAR val[16384] = { 0 };
+                               ColumnSize = 16384;
+                               SQLGetData(stmt, x, SQL_C_CHAR, val, ColumnSize, NULL);
+                               vals[y] = strdup((char *)val);
+                       } else {
+                               ColumnSize++;
+
+                               vals[y] = malloc(ColumnSize);
+                               memset(vals[y], 0, ColumnSize);
+                               SQLGetData(stmt, x, SQL_C_CHAR, (SQLCHAR *) vals[y], ColumnSize, NULL);
                        }
-                       ColumnSize++;
-
-                       vals[y] = malloc(ColumnSize);
-                       memset(vals[y], 0, ColumnSize);
-                       SQLGetData(stmt, x, SQL_C_CHAR, (SQLCHAR *) vals[y], ColumnSize, NULL);
                        y++;
                }