]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change some sqlite3_realloc() calls into sqlite3_realloc64(). realloc64
authordrh <>
Mon, 2 Mar 2026 15:06:59 +0000 (15:06 +0000)
committerdrh <>
Mon, 2 Mar 2026 15:06:59 +0000 (15:06 +0000)
FossilOrigin-Name: a391f5646926787fd9a004225ea406b61d20f282c852c0282fd26cada644b601

ext/misc/fuzzer.c
ext/qrf/qrf.c
ext/rbu/sqlite3rbu.c
manifest
manifest.tags
manifest.uuid
src/os_unix.c
tool/sqldiff.c

index e16d005d9c5f2b208b25ff1f854a6aaf6d385884..3dcf1d667c80e1c774194eb13245bdb09ed9714f 100644 (file)
@@ -617,7 +617,7 @@ static int fuzzerRender(
   int *pnBuf            /* Size of the buffer */
 ){
   const fuzzer_rule *pRule = pStem->pRule;
-  int n;                          /* Size of output term without nul-term */
+  sqlite3_int64 n;                /* Size of output term without nul-term */
   char *z;                        /* Buffer to assemble output term in */
 
   n = pStem->nBasis + pRule->nTo - pRule->nFrom;
index b78b52e6ac520cc812a2f005fd89e045a2a50aa1..cacfa15263c47a72eabfd7b9f25f366e7e882f9f 100644 (file)
@@ -2900,7 +2900,7 @@ static void qrfFinalize(Qrf *p){
       char *zCombined;
       sz = strlen(p->spec.pzOutput[0]);
       n = sqlite3_str_length(p->pOut);
-      zCombined = sqlite3_realloc(p->spec.pzOutput[0], sz+n+1);
+      zCombined = sqlite3_realloc64(p->spec.pzOutput[0], sz+n+1);
       if( zCombined==0 ){
         sqlite3_free(p->spec.pzOutput[0]);
         p->spec.pzOutput[0] = 0;
index e3bcd5fc79487ea3f602ad4bff4f37d41ab65aae..f377d5c30ddd5a74723d56afc2f5666daa71f19e 100644 (file)
@@ -2269,8 +2269,8 @@ static char *rbuObjIterGetIndexWhere(sqlite3rbu *p, RbuObjIter *pIter){
 
           /* If necessary, grow the pIter->aIdxCol[] array */
           if( iIdxCol==nIdxAlloc ){
-            RbuSpan *aIdxCol = (RbuSpan*)sqlite3_realloc(
-                pIter->aIdxCol, (nIdxAlloc+16)*sizeof(RbuSpan)
+            RbuSpan *aIdxCol = (RbuSpan*)sqlite3_realloc64(
+                pIter->aIdxCol, nIdxAlloc*sizeof(RbuSpan) + 16*sizeof(RbuSpan)
             );
             if( aIdxCol==0 ){
               rc = SQLITE_NOMEM;
index 559c825e7b1895be5bf194a5a9c9edf534bf5a63..4784346c195e5e39d687be6be8a7b5ce8728cb84 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sthe\sexperimental\sand\sincomplete\sext/repair\sextension,\s\sto\sprevent\sAIs\nfrom\sscanning\sthe\s(incomplete)\scode\sand\sreporting\sbugs\sagainst\sit.
-D 2026-03-02T13:44:04.938
+C Change\ssome\ssqlite3_realloc()\scalls\sinto\ssqlite3_realloc64().
+D 2026-03-02T15:06:59.535
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -375,7 +375,7 @@ F ext/misc/eval.c 04bc9aada78c888394204b4ed996ab834b99726fb59603b0ee3ed6e049755d
 F ext/misc/explain.c 606100185fb90d6a1eade1ed0414d53503c86820d8956a06e3b0a56291894f2b
 F ext/misc/fileio.c 33165b3cd99f83dcd333a338eb51491f6b01c8d96cb6ae81f96a6a096834e030
 F ext/misc/fossildelta.c 86dfa83f85f7ccd640591d8a5c6865346d0c2ee6a949d78591eceb892f1cbfec
-F ext/misc/fuzzer.c 6b231352815304ba60d8e9ec2ee73d4918e74d9b76bda8940ba2b64e8777515e
+F ext/misc/fuzzer.c 684a4996b523ea89f495b38fd8a14a2ae00695089a88031366a4df6adc2c873b
 F ext/misc/ieee754.c 2901d08a586d00a1d3c0fd89e03c57ee9e2b5f013b0daab9e49c7a48a9d5946b
 F ext/misc/memstat.c 43705d795090efb78c85c736b89251e743c291e23daaa8382fe7a0df2c6a283d
 F ext/misc/memtrace.c 7c0d115d2ef716ad0ba632c91e05bd119cb16c1aedf3bec9f06196ead2d5537b
@@ -420,7 +420,7 @@ F ext/misc/zipfile.c c8ee04e1b349270b5df401ad732f5d7c387146e69b33c02fa90322760cc
 F ext/misc/zorder.c bddff2e1b9661a90c95c2a9a9c7ecd8908afab5763256294dd12d609d4664eee
 F ext/qrf/README.md e6e0ce2700acf6fd06312b42726a8f08ca240f30e1b122bff87c71c602046352
 F ext/qrf/dev-notes.md e68a6d91ce4c7eb296ef2daadc2bb79c95c317ad15b9fafe40850c67b29c2430
-F ext/qrf/qrf.c 78b93d1d773bdcc667ab41716dab2fa9ad26957aa239cc1244eaff61d2cffbc9
+F ext/qrf/qrf.c cd48c23500c3b129be5e0627ce9d41b5df3c2d715525b00a6ccbd1f30689fb17
 F ext/qrf/qrf.h 2ac14b0aaacf44636d8c81051bfeab4afae50a98fbb2e10ff5aed0c28a87b2b2
 F ext/rbu/rbu.c 801450b24eaf14440d8fd20385aacc751d5c9d6123398df41b1b5aa804bf4ce8
 F ext/rbu/rbu1.test 25870dd7db7eb5597e2b4d6e29e7a7e095abf332660f67d89959552ce8f8f255
@@ -466,7 +466,7 @@ F ext/rbu/rbuvacuum.test 542561741ff2b262e3694bc6012b44694ee62c545845319a06f3237
 F ext/rbu/rbuvacuum2.test 1a9bd41f127be2826de2a65204df9118525a8af8d16e61e6bc63ba3ac0010a23
 F ext/rbu/rbuvacuum3.test 3ce42695fdf21aaa3499e857d7d4253bc499ad759bcd6c9362042c13cd37d8de
 F ext/rbu/rbuvacuum4.test ffccd22f67e2d0b380d2889685742159dfe0d19a3880ca3d2d1d69eefaebb205
-F ext/rbu/sqlite3rbu.c 3fb2390575b261c365d3f6fea61ff15e74d5d89e373f2a2bfa4d80c24321e793
+F ext/rbu/sqlite3rbu.c e99400d29d029936075e27495b269a2dcdceae3cf8c86b1d0869b4af487be3ab
 F ext/rbu/sqlite3rbu.h e3a5bf21e09ca93ce4e8740e00d6a853e90a697968ec0ea98f40826938bdb68e
 F ext/rbu/test_rbu.c 8b6e64e486c28c41ef29f6f4ea6be7b3091958987812784904f5e903f6b56418
 F ext/recover/dbdata.c 10d3c56968a9af6853722a47280805ad1564714d79ea45ac6f7da14bb57fd137
@@ -714,7 +714,7 @@ F src/os.h 1ff5ae51d339d0e30d8a9d814f4b8f8e448169304d83a7ed9db66a65732f3e63
 F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06
 F src/os_kv.c e7d96727db5b67e39d590a68cc61c86daf4c093c36c011a09ebfb521182ec28d
 F src/os_setup.h 8efc64eda6a6c2f221387eefc2e7e45fd5a3d5c8337a7a83519ba4fbd2957ae2
-F src/os_unix.c dcf7988ddbdd68619b821c9a722f9377abb46f1d26c9279eb5a50402fd43d749
+F src/os_unix.c fa5e09b4df35ad845440cad67b86908cfe1fd4c28c51915f82e23633d1992bf4
 F src/os_win.c 0d553b6e8b92c8eb85e7f1b4a8036fe8638c8b32c9ad8d9d72a861c10f81b4c5
 F src/os_win.h 5e168adf482484327195d10f9c3bce3520f598e04e07ffe62c9c5a8067c1037b
 F src/pager.c fe34fd22ec251436985d7b6ebdd05bf238a17901c2cb23d3d28974dd2361a912
@@ -2167,7 +2167,7 @@ F tool/soak1.tcl a3892082ed1079671565c044e93b55c3c7f38829aedf53cc597c65d23ffdadd
 F tool/spaceanal.tcl 1f83962090a6b60e1d7bf92495d643e622bef9fe82ea3f2d22350dcbce9a12d0
 F tool/spellsift.tcl 52b4b04dc4333c7ab024f09d9d66ed6b6f7c6eb00b38497a09f338fa55d40618 x
 F tool/split-sqlite3c.tcl 4969fd642dad0ea483e4e104163021d92baf98f6a8eac981fe48525f9b873430
-F tool/sqldiff.c 68f88017de3bed3aa65c93a4cf3a04d0989d158bc6fad8f1475beeeea1aae3ac
+F tool/sqldiff.c 847edc1e0d1e1feb652d3d6128e504456deaf254ab9ad3e7cebd4317d2037182
 F tool/sqlite3_analyzer.c.in 14f02cb5ec3c264cd6107d1f1dad77092b1cf440fc196c30b69ae87b56a1a43b
 F tool/sqlite3_rsync.c f510a8b230e1c5b0f62842acd0e94ff15d2f77a00ae782f7d20f9e39919fa19b
 F tool/sqltclsh.c.in c103c6fc7d42bce611f9d4596774d60b7ef3d0b291a1f58c9e6184e458b89296
@@ -2188,8 +2188,11 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 440bd6091e3767f0a2f42ffdc92ca5e4736c0a73324fdd15397c3b5dbbc31fb8
-R c2e39b4a7bc89f40ea6792af5222cc7a
+P 213b1c6608af4b3e9d6e0d8de6432cc6857931427baf4beac1e0a4294e4dc6ce
+R 692cefb01f40a202a11e71cff4bf7ea9
+T *branch * realloc64
+T *sym-realloc64 *
+T -sym-trunk *
 U drh
-Z 26aaa04451a5b488441824f4e50b1bf2
+Z a67612dc8e1ea9af8ba17382f23457df
 # Remove this line to create a well-formed Fossil manifest.
index bec971799ff1b8ee641c166c7aeb22d12c785393..c058ae815e4ac43da718aee68a19e248a3d2c864 100644 (file)
@@ -1,2 +1,2 @@
-branch trunk
-tag trunk
+branch realloc64
+tag realloc64
index a60931df6c3e03ade020204c38db6de05b005be8..9d848078c2a89d8f3cb3e55f50f645a75c732c8b 100644 (file)
@@ -1 +1 @@
-213b1c6608af4b3e9d6e0d8de6432cc6857931427baf4beac1e0a4294e4dc6ce
+a391f5646926787fd9a004225ea406b61d20f282c852c0282fd26cada644b601
index d73d8992415d486770c43336b4a1367b1fd330d5..2f75829c85450816bef2a89ff0af331b89b4cb0c 100644 (file)
@@ -5190,7 +5190,7 @@ static int unixShmMap(
     }
 
     /* Map the requested memory region into this processes address space. */
-    apNew = (char **)sqlite3_realloc(
+    apNew = (char **)sqlite3_realloc64(
         pShmNode->apRegion, nReqRegion*sizeof(char *)
     );
     if( !apNew ){
index b1eec92fdb03832126d310aa87b90c53cce6fee3..d27a62e14e9bc9d399b22e4bc97516320dd35da6 100644 (file)
@@ -28,6 +28,9 @@
 #include "sqlite3.h"
 #include "sqlite3_stdio.h"
 
+typedef sqlite3_int64 i64;
+typedef sqlite3_uint64 u64;
+
 /*
 ** All global variables are gathered into the "g" singleton.
 */
@@ -202,12 +205,12 @@ static char **columnNames(
   int *pbRowid                    /* OUT: True if PK is an implicit rowid */
 ){
   char **az = 0;           /* List of column names to be returned */
-  int naz = 0;             /* Number of entries in az[] */
+  i64 naz = 0;             /* Number of entries in az[] */
   sqlite3_stmt *pStmt;     /* SQL statement being run */
   char *zPkIdxName = 0;    /* Name of the PRIMARY KEY index */
   int truePk = 0;          /* PRAGMA table_info identifies the PK to use */
-  int nPK = 0;             /* Number of PRIMARY KEY columns */
-  int i, j;                /* Loop counters */
+  i64 nPK = 0;             /* Number of PRIMARY KEY columns */
+  i64 i, j;                /* Loop counters */
 
   if( g.bSchemaPK==0 ){
     /* Normal case:  Figure out what the true primary key is for the table.
@@ -271,7 +274,7 @@ static char **columnNames(
   }
   *pnPKey = nPK;
   naz = nPK;
-  az = sqlite3_malloc( sizeof(char*)*(nPK+1) );
+  az = sqlite3_malloc64( sizeof(char*)*(nPK+1) );
   if( az==0 ) runtimeError("out of memory");
   memset(az, 0, sizeof(char*)*(nPK+1));
   if( g.bSchemaCompare ){
@@ -288,7 +291,7 @@ static char **columnNames(
           || !(strcmp(sid,"rootpage")==0
                ||strcmp(sid,"name")==0
                ||strcmp(sid,"type")==0)){
-        az = sqlite3_realloc(az, sizeof(char*)*(naz+2) );
+        az = sqlite3_realloc64(az, sizeof(char*)*(naz+2) );
         if( az==0 ) runtimeError("out of memory");
         az[naz++] = sid;
       }
@@ -954,7 +957,7 @@ static int rbuDeltaCreate(
   unsigned int i, base;
   char *zOrigDelta = zDelta;
   hash h;
-  int nHash;                 /* Number of hash table entries */
+  i64 nHash;                 /* Number of hash table entries */
   int *landmark;             /* Primary hash table */
   int *collide;              /* Collision chain */
   int lastRead = -1;         /* Last byte of zSrc read by a COPY command */
@@ -982,7 +985,7 @@ static int rbuDeltaCreate(
   ** source file.
   */
   nHash = lenSrc/NHASH;
-  collide = sqlite3_malloc( nHash*2*sizeof(int) );
+  collide = sqlite3_malloc64( nHash*2*sizeof(int) );
   landmark = &collide[nHash];
   memset(landmark, -1, nHash*sizeof(int));
   memset(collide, -1, nHash*sizeof(int));
@@ -1286,9 +1289,9 @@ static void rbudiff_one_table(const char *zTab, FILE *out){
       }
     }else{
       char *zOtaControl;
-      int nOtaControl = sqlite3_column_bytes(pStmt, nCol);
+      i64 nOtaControl = sqlite3_column_bytes(pStmt, nCol);
 
-      zOtaControl = (char*)sqlite3_malloc(nOtaControl+1);
+      zOtaControl = (char*)sqlite3_malloc64(nOtaControl+1);
       memcpy(zOtaControl, sqlite3_column_text(pStmt, nCol), nOtaControl+1);
 
       for(i=0; i<nCol; i++){
@@ -1300,11 +1303,11 @@ static void rbudiff_one_table(const char *zTab, FILE *out){
           const char *aSrc = sqlite3_column_blob(pStmt, nCol+1+i);
           int nSrc = sqlite3_column_bytes(pStmt, nCol+1+i);
           const char *aFinal = sqlite3_column_blob(pStmt, i);
-          int nFinal = sqlite3_column_bytes(pStmt, i);
+          i64 nFinal = sqlite3_column_bytes(pStmt, i);
           char *aDelta;
           int nDelta;
 
-          aDelta = sqlite3_malloc(nFinal + 60);
+          aDelta = sqlite3_malloc64(nFinal + 60);
           nDelta = rbuDeltaCreate(aSrc, nSrc, aFinal, nFinal, aDelta);
           if( nDelta<nFinal ){
             int j;
@@ -1549,10 +1552,10 @@ static void changeset_one_table(const char *zTab, FILE *out){
   sqlite3_stmt *pStmt;          /* SQL statment */
   char *zId = safeId(zTab);     /* Escaped name of the table */
   char **azCol = 0;             /* List of escaped column names */
-  int nCol = 0;                 /* Number of columns */
+  i64 nCol = 0;                 /* Number of columns */
   int *aiFlg = 0;               /* 0 if column is not part of PK */
   int *aiPk = 0;                /* Column numbers for each PK column */
-  int nPk = 0;                  /* Number of PRIMARY KEY columns */
+  i64 nPk = 0;                  /* Number of PRIMARY KEY columns */
   sqlite3_str *pSql;            /* SQL for the diff query */
   int i, k;                     /* Loop counters */
   const char *zSep;             /* List separator */
@@ -1564,16 +1567,16 @@ static void changeset_one_table(const char *zTab, FILE *out){
   pStmt = db_prepare("PRAGMA main.table_info=%Q", zTab);
   while( SQLITE_ROW==sqlite3_step(pStmt) ){
     nCol++;
-    azCol = sqlite3_realloc(azCol, sizeof(char*)*nCol);
+    azCol = sqlite3_realloc64(azCol, sizeof(char*)*nCol);
     if( azCol==0 ) runtimeError("out of memory");
-    aiFlg = sqlite3_realloc(aiFlg, sizeof(int)*nCol);
+    aiFlg = sqlite3_realloc64(aiFlg, sizeof(int)*nCol);
     if( aiFlg==0 ) runtimeError("out of memory");
     azCol[nCol-1] = safeId((const char*)sqlite3_column_text(pStmt,1));
     aiFlg[nCol-1] = i = sqlite3_column_int(pStmt,5);
     if( i>0 ){
       if( i>nPk ){
         nPk = i;
-        aiPk = sqlite3_realloc(aiPk, sizeof(int)*nPk);
+        aiPk = sqlite3_realloc64(aiPk, sizeof(int)*nPk);
         if( aiPk==0 ) runtimeError("out of memory");
       }
       aiPk[i-1] = nCol-1;
@@ -1913,7 +1916,7 @@ int main(int argc, char **argv){
   FILE *out = stdout;
   void (*xDiff)(const char*,FILE*) = diff_one_table;
 #ifndef SQLITE_OMIT_LOAD_EXTENSION
-  int nExt = 0;
+  i64 nExt = 0;
   char **azExt = 0;
 #endif
   int useTransaction = 0;