]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7673: [mod_v8] Fixed ODBC NULL value incorrectly evaluated
authorSaumar Hajjar <saumar@uol.com.br>
Tue, 22 Sep 2015 02:36:42 +0000 (23:36 -0300)
committerMichael Jerris <mike@jerris.com>
Tue, 29 Sep 2015 15:23:36 +0000 (11:23 -0400)
src/mod/languages/mod_v8/src/fsodbc.cpp

index 79cf57a9062647759892a7f9c43851310ae80aec..80bc90ebd7b50ea80a0c1c1bf286f5e3694b8aad 100644 (file)
@@ -315,12 +315,17 @@ JS_ODBC_FUNCTION_IMPL(GetData)
                        SQLULEN ColumnSize;
                        SQLCHAR name[1024] = "";
                        SQLCHAR *data = _colbuf;
-
+                       SQLLEN pcbValue;
+                       
                        SQLDescribeCol(_stmt, x, name, sizeof(name), &NameLength, &DataType, &ColumnSize, &DecimalDigits, &Nullable);
-                       SQLGetData(_stmt, x, SQL_C_CHAR, _colbuf, _cblen, NULL);
+                       SQLGetData(_stmt, x, SQL_C_CHAR, _colbuf, _cblen, &pcbValue);
 
                        if (name) {
-                               arg->Set(String::NewFromUtf8(GetIsolate(), (const char *)name), String::NewFromUtf8(GetIsolate(), data ? (const char *)data : ""));
+                               if (SQL_NULL_DATA == pcbValue) {
+                                       arg->Set(String::NewFromUtf8(GetIsolate(), (const char *)name), Null(info.GetIsolate()));
+                               } else {
+                       arg->Set(String::NewFromUtf8(GetIsolate(), (const char *)name), String::NewFromUtf8(GetIsolate(), data ? (const char *)data : ""));
+                               }
                        }
                }