aboutsummaryrefslogtreecommitdiff
path: root/src/test1.c
diff options
context:
space:
mode:
authordan <Dan Kennedy>2021-10-30 17:58:25 +0000
committerdan <Dan Kennedy>2021-10-30 17:58:25 +0000
commit21b1c6ddaca2de314f18d0a6756bd443f9bb2f8c (patch)
treeabab7f21c2e9d1839ed656dfb4debe64551c9b35 /src/test1.c
parente7c23433fb77aa3741e6008d624039392f6af7d0 (diff)
downloadsqlite-21b1c6ddaca2de314f18d0a6756bd443f9bb2f8c.tar.gz
sqlite-21b1c6ddaca2de314f18d0a6756bd443f9bb2f8c.zip
Fix a memory leak in test code on this branch.
FossilOrigin-Name: 60cd9da9258e0b701d4bb3f9c91c5d0a12e925b9b937df619b09f33a287b4a33
Diffstat (limited to 'src/test1.c')
-rw-r--r--src/test1.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/test1.c b/src/test1.c
index 6bf7b17d3..db14a607d 100644
--- a/src/test1.c
+++ b/src/test1.c
@@ -8292,27 +8292,25 @@ static int SQLITE_TCLAPI test_autovacuum_pages(
sqlite3 *db;
int rc;
const char *zScript;
- size_t nScript;
if( objc!=2 && objc!=3 ){
Tcl_WrongNumArgs(interp, 1, objv, "DB ?SCRIPT?");
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
zScript = objc==3 ? Tcl_GetString(objv[2]) : 0;
- nScript = zScript ? strlen(zScript) : 0;
- pData = sqlite3_malloc64( sizeof(*pData) + nScript + 1 );
- if( pData==0 ){
- Tcl_AppendResult(interp, "out of memory", (void*)0);
- return TCL_ERROR;
- }
- pData->interp = interp;
if( zScript ){
+ size_t nScript = strlen(zScript);
+ pData = sqlite3_malloc64( sizeof(*pData) + nScript + 1 );
+ if( pData==0 ){
+ Tcl_AppendResult(interp, "out of memory", (void*)0);
+ return TCL_ERROR;
+ }
+ pData->interp = interp;
pData->zScript = (char*)&pData[1];
memcpy(pData->zScript, zScript, nScript+1);
rc = sqlite3_autovacuum_pages(db,test_autovacuum_pages_callback,
pData, sqlite3_free);
}else{
- pData->zScript = 0;
rc = sqlite3_autovacuum_pages(db, 0, 0, 0);
}
if( rc ){