]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make the shell_exec() routine in the CLI robust against NULL SQL text.
authordrh <>
Thu, 4 Dec 2025 20:22:36 +0000 (20:22 +0000)
committerdrh <>
Thu, 4 Dec 2025 20:22:36 +0000 (20:22 +0000)
Fix harmless compiler warnings in ext/misc/zipfile.c.

FossilOrigin-Name: 2ecba7dfd10c7d6a7a34b0ec01a387c9f1426c0504c8f20edc03e29bb9aa93c3

ext/misc/zipfile.c
manifest
manifest.uuid
src/shell.c.in

index 58cfba658a427f097511bb2ce977d5b80ebf1c91..de401b89ecf70274eaf39c8ee500c592e0574910 100644 (file)
@@ -900,11 +900,12 @@ static int zipfileGetEntry(
         rc = zipfileReadData(pFile, aRead, szFix, pNew->cds.iOffset, pzErr);
       }else{
         aRead = (u8*)&aBlob[pNew->cds.iOffset];
-        if( (pNew->cds.iOffset + ZIPFILE_LFH_FIXED_SZ)>nBlob ){
+        if( (pNew->cds.iOffset + ZIPFILE_LFH_FIXED_SZ)>(unsigned)nBlob ){
           rc = zipfileCorrupt(pzErr);
         }
       }
 
+      memset(&lfh, 0, sizeof(lfh));
       if( rc==SQLITE_OK ) rc = zipfileReadLFH(aRead, &lfh);
       if( rc==SQLITE_OK ){
         pNew->iDataOff =  pNew->cds.iOffset + ZIPFILE_LFH_FIXED_SZ;
index e0c233ddc1d7bae42209110abb9066999d7c49a2..e46e839980086ffdb28076a5ae4f21c52823a6ca 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Limit\scompile\stime\svalue\sSQLITE_MAX_SQL_LENGTH\sto\s1024\sless\sthan\s2^31,\sor\s2147482624.\sThis\sis\sto\savoid\shaving\sto\sdeal\swith\sedge\scases\srelated\sto\s32-bit\sinteger\soverflow\sthat\scan\sonly\soccur\sin\scustom\sbuilds.
-D 2025-12-04T16:44:11.298
+C Make\sthe\sshell_exec()\sroutine\sin\sthe\sCLI\srobust\sagainst\sNULL\sSQL\stext.\nFix\sharmless\scompiler\swarnings\sin\sext/misc/zipfile.c.
+D 2025-12-04T20:22:36.336
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -414,7 +414,7 @@ F ext/misc/vtablog.c 2d04386c2f5a3bb93bc9ae978f0b7dcd5a264e126abd640dd6d82aa9067
 F ext/misc/vtshim.c e5bce24ab8c532f4fdc600148718fe1802cb6ed57417f1c1032d8961f72b0e8f
 F ext/misc/wholenumber.c 0fa0c082676b7868bf2fa918e911133f2b349bcdceabd1198bba5f65b4fc0668
 F ext/misc/windirent.h 02211ce51f3034c675f2dbf4d228194d51b3ee05734678bad5106fff6292e60c
-F ext/misc/zipfile.c 09e6e3a3ff40a99677de3c0bc6569bd5f4709b1844ac3d1c1452a456c5a62f1c
+F ext/misc/zipfile.c 9981cda2f5d08ff01f33c2e4cea82df75f83a4c0fdcbc5dce67e0f775b770fb1
 F ext/misc/zorder.c bddff2e1b9661a90c95c2a9a9c7ecd8908afab5763256294dd12d609d4664eee
 F ext/qrf/README.md 86fc5c3c5e3eddbe54fc1235cbdc52b8c2c0732791d224345c3014cd45c4c0e7
 F ext/qrf/dev-notes.md e68a6d91ce4c7eb296ef2daadc2bb79c95c317ad15b9fafe40850c67b29c2430
@@ -737,7 +737,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 8d53771eb51a4ab5f970150c3a70969d8db79cd04a8774c2d296bbcf471a0dd0
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c 344518c1bba9c4636bf651b7642304abd2e7075ba35feb4bae42a51e5efe991f
-F src/shell.c.in 62b286951404fd72c116bb3b96b5ee9330de4dc4c8753ca33967ca1a47b3b972
+F src/shell.c.in a4a05fcc14c5e84867b3a2bb04cc1d53cb924b810ad72976157861a5d5f1a76b
 F src/sqlite.h.in 706cacea5308b0244fb6cec92e08310fb427a125375c64137cc1f878ae4cf5c0
 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
 F src/sqlite3ext.h 5d5330f5f8461f5ce74960436ddcfa53ecd09c2b8b23901e22ae38aec3243998
@@ -2184,8 +2184,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 307a500aa6a1f3ac8b154d2e981bb30c90236be26a8c9a8f318d5982c62440dd
-R 1901d2d7906ab24deca78086256a7fb1
-U dan
-Z 8a6f9d64c3e534e1ce9c8fde1cff2900
+P d73364555d213e443d8400ed69b134006f4e2fe0054d74fe0828ff01effe5cd2
+R c59a03fa78282f99ec46da47260a006f
+U drh
+Z 6f7b8b99cea200503a2d25a0683cc9c3
 # Remove this line to create a well-formed Fossil manifest.
index 1f6d3e51cc42e362b27b0aabf1f794d0cece0d3c..90a6dc42b5b5e06357e1ddfa8223b2eccdf52073 100644 (file)
@@ -1 +1 @@
-d73364555d213e443d8400ed69b134006f4e2fe0054d74fe0828ff01effe5cd2
+2ecba7dfd10c7d6a7a34b0ec01a387c9f1426c0504c8f20edc03e29bb9aa93c3
index 0ff7135757ecd24dd1ee338d8eebf57854e496ac..27ed68bd9b10d9c3bd01f1f9f750c93beee4aaf4 100644 (file)
@@ -3220,7 +3220,7 @@ static int shell_exec(
   }
 #endif
 
-  while( zSql[0] && (SQLITE_OK == rc) ){
+  while( zSql && zSql[0] && (SQLITE_OK == rc) ){
     static const char *zStmtSql;
     rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, &zLeftover);
     if( SQLITE_OK != rc ){