You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2017/09/20 17:08:33 UTC

[01/10] incubator-trafodion git commit: fix TRAFODION-2725

Repository: incubator-trafodion
Updated Branches:
  refs/heads/master dc0d2043d -> 2d6d0e7a9


fix TRAFODION-2725


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/73548715
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/73548715
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/73548715

Branch: refs/heads/master
Commit: 73548715fd95856d34724bb7c2f4b44e3c3b7f3d
Parents: 802f3b0
Author: SuJinpei <87...@qq.com>
Authored: Fri Aug 25 15:45:19 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Fri Aug 25 15:45:19 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/sqltocconv.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/73548715/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp b/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
old mode 100644
new mode 100755
index 37922c0..7b9fda0
--- a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
+++ b/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
@@ -594,7 +594,7 @@ unsigned long ODBC::ConvertSQLToC(SQLINTEGER	ODBCAppVersion,
 							dTmp)  != SQL_SUCCESS)
 					return IDS_07_006;
 //				_gcvt(dTmp, DBL_DIG, cTmpBuf);
-				if (!double_to_char (dTmp, DBL_DIG, cTmpBuf, targetLength))
+				if (!double_to_char (dTmp, DBL_DIG, cTmpBuf, sizeof(cTmpBuf)))
 					return IDS_22_001;
 			
 			}
@@ -603,13 +603,13 @@ unsigned long ODBC::ConvertSQLToC(SQLINTEGER	ODBCAppVersion,
 				if (ODBCDataType == SQL_REAL) {
 					dTmp = (double)(*(float *)srcDataPtr);
 //					_gcvt(dTmp, FLT_DIG + 1, cTmpBuf);
-					if (!double_to_char (dTmp, FLT_DIG + 1, cTmpBuf, targetLength))
+					if (!double_to_char (dTmp, FLT_DIG + 1, cTmpBuf, sizeof(cTmpBuf)))
 						return IDS_22_001;
 				}
 				else {
 					dTmp = *(double *)srcDataPtr;
 //					_gcvt(dTmp, DBL_DIG, cTmpBuf);
-					if (!double_to_char (dTmp, DBL_DIG + 1, cTmpBuf, targetLength))
+					if (!double_to_char (dTmp, DBL_DIG + 1, cTmpBuf, sizeof(cTmpBuf)))
 						return IDS_22_001;
 				}
 			}


[05/10] incubator-trafodion git commit: simplify the code

Posted by db...@apache.org.
simplify the code


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/709a26f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/709a26f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/709a26f2

Branch: refs/heads/master
Commit: 709a26f25ccfa9b48a747f8078bc2cafbd3999bc
Parents: 7f82f5e
Author: SuJinpei <87...@qq.com>
Authored: Thu Sep 14 19:42:28 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Thu Sep 14 19:42:28 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/709a26f2/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
index 754c7d5..c35d968 100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
@@ -869,7 +869,7 @@ bool double_to_char (double number, int precision, char* string, short size)
     char format[16];
     char buf[MAX_DOUBLE_TO_CHAR_LEN];
 
-    sprintf(format, "%%.%dl%c", precision, number < 1e-6 ? 'g':'f');
+    sprintf(format, "%%.%dlg", precision);
     sprintf(buf, format, number);
 
     if (size > strlen(buf)) {


[03/10] incubator-trafodion git commit: rewrite double_to_char function

Posted by db...@apache.org.
rewrite double_to_char function


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/dfd8af74
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/dfd8af74
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/dfd8af74

Branch: refs/heads/master
Commit: dfd8af74137739ba1c326ff2bf38edb5759cd171
Parents: b6513da
Author: SuJinpei <87...@qq.com>
Authored: Thu Sep 14 16:54:08 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Thu Sep 14 16:54:08 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.cpp | 77 +++---------------------
 1 file changed, 9 insertions(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/dfd8af74/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
old mode 100644
new mode 100755
index 8d1124c..4012e4e
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
@@ -865,77 +865,18 @@ bool use_gcvt(double number, char* string, short size)
 
 bool double_to_char (double number, int precision, char* string, short size)
 {
-	char *buffer,*temp ;
-	bool rc = true;
-
-	int	decimal_spot,
-		sign,
-		count,
-		current_location = 0,
-		length;
-
-	*string = 0;
-
-	temp = _fcvt (number, precision, &decimal_spot, &sign) ;
-	length = strlen(temp);
-	if (length == 0)
-	{
-		return use_gcvt(number,string,size);
-	}
-	if (length > precision)
-		buffer = (char *) malloc (length + 3) ;
-	else
-		buffer = (char *) malloc (precision + 3) ;
-
-	if (buffer == NULL)
-		return false;
-
-/* Add negative sign if required. */ 
-
-	if (sign)
-		buffer [current_location++] = '-' ;
-
-/* Place decimal point in the correct location. */ 
-
-	if (decimal_spot > 0)
-	{
-		strncpy (&buffer [current_location], temp, decimal_spot) ;
-		buffer [decimal_spot + current_location] = '.' ;
-		strcpy (&buffer [decimal_spot + current_location + 1],
-					&temp [decimal_spot]) ;
-	}
-	else
-	{
-		buffer [current_location] = '.' ;
-		for(count = current_location;
-			count< abs(decimal_spot)+current_location; count++)
-			buffer [count + 1] = '0' ;
-		strcpy (&buffer [count + 1], temp) ;
-	}
+    bool rc = false;
+    char format[16];
+    char buf[512];
 
-	rSup(buffer);
-	length = strlen(buffer);
-	if (buffer[0] == '.' || (buffer[0] == '-' && buffer[1] == '.')) length++;
+    sprintf(format, "%%.%dl%c", precision, number < 1e-6 ? 'g':'f');
+    sprintf(buf, format, number);
 
-	if (length>size)
-		rc = use_gcvt(number,string,size);
-	else
-	{
-		if (buffer[0] == '.')
-		{
-			strcpy( string, "0");
-			strcat( string, buffer);
-		}
-		else if (buffer[0] == '-' && buffer[1] == '.')
-		{
-			strcpy( string, "-0");
-			strcat( string, &buffer[1]);
-		}
-		else
-			strcpy( string, buffer);
-	}
+    if (size > strlen(buf)) {
+        strcpy(string, buf);
+        rc = true;
+    }
 
-	free (buffer);
 	return rc;
 } 
 


[02/10] incubator-trafodion git commit: fix TRAFODION-2725

Posted by db...@apache.org.
fix TRAFODION-2725


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/b6513da5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/b6513da5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/b6513da5

Branch: refs/heads/master
Commit: b6513da5a82f9161457ae854a30cab2026b5c865
Parents: 7354871
Author: SuJinpei <87...@qq.com>
Authored: Wed Aug 30 14:00:17 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Wed Aug 30 14:00:17 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/sqltocconv.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/b6513da5/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp b/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
index 7b9fda0..0a95b70 100755
--- a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
+++ b/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
@@ -946,7 +946,7 @@ unsigned long ODBC::ConvertSQLToC(SQLINTEGER	ODBCAppVersion,
 							dTmp)  != SQL_SUCCESS)
 					return IDS_07_006;
 //				_gcvt(dTmp, DBL_DIG, cTmpBuf);
-				if (!double_to_char (dTmp, DBL_DIG, cTmpBuf, targetLength))
+				if (!double_to_char (dTmp, DBL_DIG, cTmpBuf, sizeof(cTmpBuf)))
 					return IDS_22_001;
 			
 			}
@@ -955,13 +955,13 @@ unsigned long ODBC::ConvertSQLToC(SQLINTEGER	ODBCAppVersion,
 				if (ODBCDataType == SQL_REAL) {
 					dTmp = (double)(*(float *)srcDataPtr);
 //					_gcvt(dTmp, FLT_DIG + 1, cTmpBuf);
-					if (!double_to_char (dTmp, FLT_DIG + 1, cTmpBuf, targetLength))
+                    if (!double_to_char(dTmp, FLT_DIG + 1, cTmpBuf, sizeof(cTmpBuf)))
 						return IDS_22_001;
 				}
 				else {
 					dTmp = *(double *)srcDataPtr;
 //					_gcvt(dTmp, DBL_DIG, cTmpBuf);
-					if (!double_to_char (dTmp, DBL_DIG + 1, cTmpBuf, targetLength))
+                    if (!double_to_char(dTmp, DBL_DIG + 1, cTmpBuf, sizeof(cTmpBuf)))
 						return IDS_22_001;
 				}
 			}


[08/10] incubator-trafodion git commit: correct MAX_DOUBLE_TO_CHAR_LEN

Posted by db...@apache.org.
correct MAX_DOUBLE_TO_CHAR_LEN


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/bb6606fa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/bb6606fa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/bb6606fa

Branch: refs/heads/master
Commit: bb6606fab61402d7256561c3f163bf70694a8149
Parents: b738b14
Author: SuJinpei <87...@qq.com>
Authored: Sun Sep 17 22:34:32 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Sun Sep 17 22:34:32 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/bb6606fa/win-odbc64/odbcclient/drvr35/drvrglobal.h
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.h b/win-odbc64/odbcclient/drvr35/drvrglobal.h
index 787bc82..61c02d2 100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.h
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.h
@@ -103,7 +103,7 @@ extern char* VprocString;
 
 #define STRICT_SCHEMA_ENV_VAL_SIZE 100
 
-#define MAX_DOUBLE_TO_CHAR_LEN 308 + 12
+#define MAX_DOUBLE_TO_CHAR_LEN (DBL_MANT_DIG - DBL_MIN_EXP + 12)
 
 typedef enum SRVR_TYPE
 {


[09/10] incubator-trafodion git commit: fix a mistake

Posted by db...@apache.org.
fix a mistake


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/1757c597
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/1757c597
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/1757c597

Branch: refs/heads/master
Commit: 1757c597dee2c1e517c023dfa6f74d0c53fb772d
Parents: bb6606f
Author: SuJinpei <87...@qq.com>
Authored: Sun Sep 17 23:22:35 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Sun Sep 17 23:22:35 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1757c597/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
index eb264d6..e3b1a11 100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
@@ -876,7 +876,7 @@ bool double_to_char (double number, int precision, char* string, short size)
     precision = precision < size ? precision : size - 1;
 
     // precission should be limit to a reasonable range.
-    if ((precision < 0) && (precision >(DBL_MANT_DIG - DBL_MIN_EXP))) {
+    if ((precision < 0) || (precision >(DBL_MANT_DIG - DBL_MIN_EXP))) {
         goto fun_exit;
     }
 


[07/10] incubator-trafodion git commit: improve robustness

Posted by db...@apache.org.
improve robustness


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/b738b140
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/b738b140
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/b738b140

Branch: refs/heads/master
Commit: b738b140408653f3139728c1bfd65f7c4dbbac79
Parents: e9e214d
Author: SuJinpei <87...@qq.com>
Authored: Sun Sep 17 22:03:22 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Sun Sep 17 22:03:22 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.cpp | 36 ++++++++++++++++++++----
 1 file changed, 31 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/b738b140/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
index d5f2263..eb264d6 100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
@@ -867,16 +867,42 @@ bool double_to_char (double number, int precision, char* string, short size)
 {
     bool rc = false;
     char format[16] = { '\0' };
+    size_t actualLen = 0;
+
+    // make sure any precision of possible double value can be format to the buf. 
     char buf[MAX_DOUBLE_TO_CHAR_LEN] = { '\0' };
 
-    sprintf(format, "%%.%dlg", precision);
-    sprintf(buf, format, number);
+    // precision should less than size
+    precision = precision < size ? precision : size - 1;
 
-    if (size > strlen(buf)) {
-        strcpy(string, buf);
-        rc = true;
+    // precission should be limit to a reasonable range.
+    if ((precision < 0) && (precision >(DBL_MANT_DIG - DBL_MIN_EXP))) {
+        goto fun_exit;
     }
 
+    // we want to return reasonable value even when caller didn't provide sufficiently buffer. 
+    // here using loop because actualLen may increase even precision decrease when fix-point
+    // notation to exponential notation. for example:
+    // for double d = 12345678.9, the caller only provide size=8.
+    // d will first convert to "1.234568e+07", actualLen == 12. then convert to "1.2e+07".
+    do {
+        if (sprintf(format, "%%.%dlg", precision) < 0) {
+            goto fun_exit;
+        }
+        if ((actualLen = sprintf(buf, format, number)) < 0) {
+            goto fun_exit;
+        }
+        if (size > actualLen) {
+            strcpy(string, buf);
+            rc = true;
+            break;
+        }
+        else {
+            precision -= (actualLen - size + 1);
+        }
+    } while ((precision >= 0));
+
+fun_exit:
 	return rc;
 } 
 


[06/10] incubator-trafodion git commit: initialize variable

Posted by db...@apache.org.
initialize variable


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/e9e214db
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/e9e214db
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/e9e214db

Branch: refs/heads/master
Commit: e9e214db0117afe35edd91f5330f75bfcab3bfca
Parents: 709a26f
Author: SuJinpei <87...@qq.com>
Authored: Fri Sep 15 21:27:51 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Fri Sep 15 21:27:51 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/e9e214db/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
index c35d968..d5f2263 100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
@@ -866,8 +866,8 @@ bool use_gcvt(double number, char* string, short size)
 bool double_to_char (double number, int precision, char* string, short size)
 {
     bool rc = false;
-    char format[16];
-    char buf[MAX_DOUBLE_TO_CHAR_LEN];
+    char format[16] = { '\0' };
+    char buf[MAX_DOUBLE_TO_CHAR_LEN] = { '\0' };
 
     sprintf(format, "%%.%dlg", precision);
     sprintf(buf, format, number);


[10/10] incubator-trafodion git commit: Merge [TRAFODION-2725] PR 1220 Fix ODBC stack overflows on REAL, FLOAT, DOUBLE

Posted by db...@apache.org.
Merge [TRAFODION-2725] PR 1220 Fix ODBC stack overflows on REAL, FLOAT, DOUBLE


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/2d6d0e7a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/2d6d0e7a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/2d6d0e7a

Branch: refs/heads/master
Commit: 2d6d0e7a9d7414b296816b24cc34fd2f2a57c129
Parents: dc0d204 1757c59
Author: Dave Birdsall <db...@apache.org>
Authored: Wed Sep 20 17:07:24 2017 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Wed Sep 20 17:07:24 2017 +0000

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.cpp | 109 ++++++++---------------
 win-odbc64/odbcclient/drvr35/drvrglobal.h   |   2 +
 win-odbc64/odbcclient/drvr35/sqltocconv.cpp |  14 +--
 3 files changed, 47 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2d6d0e7a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
----------------------------------------------------------------------
diff --cc win-odbc64/odbcclient/drvr35/drvrglobal.cpp
index 6128ced,e3b1a11..730eb11
mode 100644,100755..100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2d6d0e7a/win-odbc64/odbcclient/drvr35/drvrglobal.h
----------------------------------------------------------------------
diff --cc win-odbc64/odbcclient/drvr35/drvrglobal.h
index 2bb174b,61c02d2..12b2702
mode 100644,100755..100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.h
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.h

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2d6d0e7a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
----------------------------------------------------------------------
diff --cc win-odbc64/odbcclient/drvr35/sqltocconv.cpp
index 7da4c41,83c2ee3..918445a
mode 100644,100755..100755
--- a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
+++ b/win-odbc64/odbcclient/drvr35/sqltocconv.cpp


[04/10] incubator-trafodion git commit: increase cTmpBuf size to prevent potential bugs

Posted by db...@apache.org.
increase cTmpBuf size to prevent potential bugs


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/7f82f5e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/7f82f5e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/7f82f5e4

Branch: refs/heads/master
Commit: 7f82f5e4ec04c50148b0bdad8b48bda19e6b2eb2
Parents: dfd8af7
Author: SuJinpei <87...@qq.com>
Authored: Thu Sep 14 18:01:06 2017 +0800
Committer: SuJinpei <87...@qq.com>
Committed: Thu Sep 14 18:01:06 2017 +0800

----------------------------------------------------------------------
 win-odbc64/odbcclient/drvr35/drvrglobal.cpp | 2 +-
 win-odbc64/odbcclient/drvr35/drvrglobal.h   | 2 ++
 win-odbc64/odbcclient/drvr35/sqltocconv.cpp | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7f82f5e4/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
index 4012e4e..754c7d5 100755
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.cpp
@@ -867,7 +867,7 @@ bool double_to_char (double number, int precision, char* string, short size)
 {
     bool rc = false;
     char format[16];
-    char buf[512];
+    char buf[MAX_DOUBLE_TO_CHAR_LEN];
 
     sprintf(format, "%%.%dl%c", precision, number < 1e-6 ? 'g':'f');
     sprintf(buf, format, number);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7f82f5e4/win-odbc64/odbcclient/drvr35/drvrglobal.h
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/drvrglobal.h b/win-odbc64/odbcclient/drvr35/drvrglobal.h
old mode 100644
new mode 100755
index 0865698..787bc82
--- a/win-odbc64/odbcclient/drvr35/drvrglobal.h
+++ b/win-odbc64/odbcclient/drvr35/drvrglobal.h
@@ -103,6 +103,8 @@ extern char* VprocString;
 
 #define STRICT_SCHEMA_ENV_VAL_SIZE 100
 
+#define MAX_DOUBLE_TO_CHAR_LEN 308 + 12
+
 typedef enum SRVR_TYPE
 {
 	SRVR_UNKNOWN = 0,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7f82f5e4/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
----------------------------------------------------------------------
diff --git a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp b/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
index 0a95b70..83c2ee3 100755
--- a/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
+++ b/win-odbc64/odbcclient/drvr35/sqltocconv.cpp
@@ -167,7 +167,7 @@ unsigned long ODBC::ConvertSQLToC(SQLINTEGER	ODBCAppVersion,
 	USHORT		usTmp;
 	SLONG		lTmp;
 	ULONG		ulTmp;
-	CHAR		cTmpBuf[132];
+	CHAR		cTmpBuf[MAX_DOUBLE_TO_CHAR_LEN];
 	CHAR		cTmpBuf1[30];
 	__int64		tempVal64;
 	__int64		power;