diff options
author | drh <> | 2024-12-09 20:46:36 +0000 |
---|---|---|
committer | drh <> | 2024-12-09 20:46:36 +0000 |
commit | e57527c14f7b7cfa6e32eeab5c549d50c4fa3674 (patch) | |
tree | f1b0f7667eb70accb76d5b48c0809db30f92fda3 /src/tclsqlite.c | |
parent | e85e33d39c502f16c30f697f5c591a67615b155d (diff) | |
download | sqlite-e57527c14f7b7cfa6e32eeab5c549d50c4fa3674.tar.gz sqlite-e57527c14f7b7cfa6e32eeab5c549d50c4fa3674.zip |
Make the TCL interface more rebust against very large strings coming
out of TCL9.
FossilOrigin-Name: e2bae4143afd07de1ae55a6d2606a3b541a5b94568aa41f6a96e5d1245471653
Diffstat (limited to 'src/tclsqlite.c')
-rw-r--r-- | src/tclsqlite.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/tclsqlite.c b/src/tclsqlite.c index 4406ceef6..f0b5c3e81 100644 --- a/src/tclsqlite.c +++ b/src/tclsqlite.c @@ -1133,7 +1133,8 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){ } default: { data = (unsigned char *)Tcl_GetStringFromObj(pVar, &n); - sqlite3_result_text(context, (char *)data, n, SQLITE_TRANSIENT); + sqlite3_result_text64(context, (char *)data, n, SQLITE_TRANSIENT, + SQLITE_UTF8); break; } } @@ -1519,7 +1520,8 @@ static int dbPrepareAndBind( sqlite3_bind_int64(pStmt, i, v); }else{ data = (unsigned char *)Tcl_GetStringFromObj(pVar, &n); - sqlite3_bind_text(pStmt, i, (char *)data, n, SQLITE_STATIC); + sqlite3_bind_text64(pStmt, i, (char *)data, n, SQLITE_STATIC, + SQLITE_UTF8); Tcl_IncrRefCount(pVar); pPreStmt->apParm[iParm++] = pVar; } @@ -3422,7 +3424,7 @@ deserialize_error: enum TTYPE_enum { TTYPE_STMT, TTYPE_PROFILE, TTYPE_ROW, TTYPE_CLOSE }; - int i; + Tcl_Size i; if( TCL_OK!=Tcl_ListObjLength(interp, objv[3], &len) ){ return TCL_ERROR; } |