Fossil SCM

Remove another instance of strcpy() from FTS5 in SQLite 3.9.0, to mollify OpenBSD.

drh 2015-10-10 15:58 trunk
Commit 921d670350d3d083a6904aa233b90eaa2f77dbbd
2 files changed +6 -4 +1 -1
+6 -4
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -325,11 +325,11 @@
325325
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
326326
** [sqlite_version()] and [sqlite_source_id()].
327327
*/
328328
#define SQLITE_VERSION "3.9.0"
329329
#define SQLITE_VERSION_NUMBER 3009000
330
-#define SQLITE_SOURCE_ID "2015-10-10 15:11:49 bc24a5bbfd95df3518611b221de69b73776111bc"
330
+#define SQLITE_SOURCE_ID "2015-10-10 15:57:20 35e6248abb4435a8b26d270092b856beff867406"
331331
332332
/*
333333
** CAPI3REF: Run-Time Library Version Numbers
334334
** KEYWORDS: sqlite3_version, sqlite3_sourceid
335335
**
@@ -180399,19 +180399,21 @@
180399180399
fts5_tokenizer *pTokenizer, /* Tokenizer implementation */
180400180400
void(*xDestroy)(void*) /* Destructor for pUserData */
180401180401
){
180402180402
Fts5Global *pGlobal = (Fts5Global*)pApi;
180403180403
Fts5TokenizerModule *pNew;
180404
+ int nName; /* Size of zName and its \0 terminator */
180404180405
int nByte; /* Bytes of space to allocate */
180405180406
int rc = SQLITE_OK;
180406180407
180407
- nByte = sizeof(Fts5TokenizerModule) + strlen(zName) + 1;
180408
+ nName = (int)strlen(zName) + 1;
180409
+ nByte = sizeof(Fts5TokenizerModule) + nName;
180408180410
pNew = (Fts5TokenizerModule*)sqlite3_malloc(nByte);
180409180411
if( pNew ){
180410180412
memset(pNew, 0, nByte);
180411180413
pNew->zName = (char*)&pNew[1];
180412
- strcpy(pNew->zName, zName);
180414
+ memcpy(pNew->zName, zName, nName);
180413180415
pNew->pUserData = pUserData;
180414180416
pNew->x = *pTokenizer;
180415180417
pNew->xDestroy = xDestroy;
180416180418
pNew->pNext = pGlobal->pTok;
180417180419
pGlobal->pTok = pNew;
@@ -180539,11 +180541,11 @@
180539180541
sqlite3_context *pCtx, /* Function call context */
180540180542
int nArg, /* Number of args */
180541180543
sqlite3_value **apVal /* Function arguments */
180542180544
){
180543180545
assert( nArg==0 );
180544
- sqlite3_result_text(pCtx, "fts5: 2015-10-10 15:11:49 bc24a5bbfd95df3518611b221de69b73776111bc", -1, SQLITE_TRANSIENT);
180546
+ sqlite3_result_text(pCtx, "fts5: 2015-10-10 15:57:20 35e6248abb4435a8b26d270092b856beff867406", -1, SQLITE_TRANSIENT);
180545180547
}
180546180548
180547180549
static int fts5Init(sqlite3 *db){
180548180550
static const sqlite3_module fts5Mod = {
180549180551
/* iVersion */ 2,
180550180552
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -325,11 +325,11 @@
325 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
326 ** [sqlite_version()] and [sqlite_source_id()].
327 */
328 #define SQLITE_VERSION "3.9.0"
329 #define SQLITE_VERSION_NUMBER 3009000
330 #define SQLITE_SOURCE_ID "2015-10-10 15:11:49 bc24a5bbfd95df3518611b221de69b73776111bc"
331
332 /*
333 ** CAPI3REF: Run-Time Library Version Numbers
334 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
335 **
@@ -180399,19 +180399,21 @@
180399 fts5_tokenizer *pTokenizer, /* Tokenizer implementation */
180400 void(*xDestroy)(void*) /* Destructor for pUserData */
180401 ){
180402 Fts5Global *pGlobal = (Fts5Global*)pApi;
180403 Fts5TokenizerModule *pNew;
 
180404 int nByte; /* Bytes of space to allocate */
180405 int rc = SQLITE_OK;
180406
180407 nByte = sizeof(Fts5TokenizerModule) + strlen(zName) + 1;
 
180408 pNew = (Fts5TokenizerModule*)sqlite3_malloc(nByte);
180409 if( pNew ){
180410 memset(pNew, 0, nByte);
180411 pNew->zName = (char*)&pNew[1];
180412 strcpy(pNew->zName, zName);
180413 pNew->pUserData = pUserData;
180414 pNew->x = *pTokenizer;
180415 pNew->xDestroy = xDestroy;
180416 pNew->pNext = pGlobal->pTok;
180417 pGlobal->pTok = pNew;
@@ -180539,11 +180541,11 @@
180539 sqlite3_context *pCtx, /* Function call context */
180540 int nArg, /* Number of args */
180541 sqlite3_value **apVal /* Function arguments */
180542 ){
180543 assert( nArg==0 );
180544 sqlite3_result_text(pCtx, "fts5: 2015-10-10 15:11:49 bc24a5bbfd95df3518611b221de69b73776111bc", -1, SQLITE_TRANSIENT);
180545 }
180546
180547 static int fts5Init(sqlite3 *db){
180548 static const sqlite3_module fts5Mod = {
180549 /* iVersion */ 2,
180550
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -325,11 +325,11 @@
325 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
326 ** [sqlite_version()] and [sqlite_source_id()].
327 */
328 #define SQLITE_VERSION "3.9.0"
329 #define SQLITE_VERSION_NUMBER 3009000
330 #define SQLITE_SOURCE_ID "2015-10-10 15:57:20 35e6248abb4435a8b26d270092b856beff867406"
331
332 /*
333 ** CAPI3REF: Run-Time Library Version Numbers
334 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
335 **
@@ -180399,19 +180399,21 @@
180399 fts5_tokenizer *pTokenizer, /* Tokenizer implementation */
180400 void(*xDestroy)(void*) /* Destructor for pUserData */
180401 ){
180402 Fts5Global *pGlobal = (Fts5Global*)pApi;
180403 Fts5TokenizerModule *pNew;
180404 int nName; /* Size of zName and its \0 terminator */
180405 int nByte; /* Bytes of space to allocate */
180406 int rc = SQLITE_OK;
180407
180408 nName = (int)strlen(zName) + 1;
180409 nByte = sizeof(Fts5TokenizerModule) + nName;
180410 pNew = (Fts5TokenizerModule*)sqlite3_malloc(nByte);
180411 if( pNew ){
180412 memset(pNew, 0, nByte);
180413 pNew->zName = (char*)&pNew[1];
180414 memcpy(pNew->zName, zName, nName);
180415 pNew->pUserData = pUserData;
180416 pNew->x = *pTokenizer;
180417 pNew->xDestroy = xDestroy;
180418 pNew->pNext = pGlobal->pTok;
180419 pGlobal->pTok = pNew;
@@ -180539,11 +180541,11 @@
180541 sqlite3_context *pCtx, /* Function call context */
180542 int nArg, /* Number of args */
180543 sqlite3_value **apVal /* Function arguments */
180544 ){
180545 assert( nArg==0 );
180546 sqlite3_result_text(pCtx, "fts5: 2015-10-10 15:57:20 35e6248abb4435a8b26d270092b856beff867406", -1, SQLITE_TRANSIENT);
180547 }
180548
180549 static int fts5Init(sqlite3 *db){
180550 static const sqlite3_module fts5Mod = {
180551 /* iVersion */ 2,
180552
+1 -1
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -111,11 +111,11 @@
111111
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
112112
** [sqlite_version()] and [sqlite_source_id()].
113113
*/
114114
#define SQLITE_VERSION "3.9.0"
115115
#define SQLITE_VERSION_NUMBER 3009000
116
-#define SQLITE_SOURCE_ID "2015-10-10 15:11:49 bc24a5bbfd95df3518611b221de69b73776111bc"
116
+#define SQLITE_SOURCE_ID "2015-10-10 15:57:20 35e6248abb4435a8b26d270092b856beff867406"
117117
118118
/*
119119
** CAPI3REF: Run-Time Library Version Numbers
120120
** KEYWORDS: sqlite3_version, sqlite3_sourceid
121121
**
122122
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -111,11 +111,11 @@
111 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
112 ** [sqlite_version()] and [sqlite_source_id()].
113 */
114 #define SQLITE_VERSION "3.9.0"
115 #define SQLITE_VERSION_NUMBER 3009000
116 #define SQLITE_SOURCE_ID "2015-10-10 15:11:49 bc24a5bbfd95df3518611b221de69b73776111bc"
117
118 /*
119 ** CAPI3REF: Run-Time Library Version Numbers
120 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
121 **
122
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -111,11 +111,11 @@
111 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
112 ** [sqlite_version()] and [sqlite_source_id()].
113 */
114 #define SQLITE_VERSION "3.9.0"
115 #define SQLITE_VERSION_NUMBER 3009000
116 #define SQLITE_SOURCE_ID "2015-10-10 15:57:20 35e6248abb4435a8b26d270092b856beff867406"
117
118 /*
119 ** CAPI3REF: Run-Time Library Version Numbers
120 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
121 **
122

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button