]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a case where the recovery extension might write uninitialized data to the recover...
authordan <Dan Kennedy>
Thu, 2 May 2024 17:46:52 +0000 (17:46 +0000)
committerdan <Dan Kennedy>
Thu, 2 May 2024 17:46:52 +0000 (17:46 +0000)
FossilOrigin-Name: 8519b4d0393ed17eed06bceffbc891fe8cae0bc1d466a79eba0602ef46b07c56

ext/recover/dbdata.c
manifest
manifest.uuid

index b01e544885612843a1003bd48b2d1600edf3d351..1905e68813e1dd353c5ed2527f7bc568323b09c3 100644 (file)
@@ -666,7 +666,6 @@ static int dbdataNext(sqlite3_vtab_cursor *pCursor){
             rc = dbdataBufferSize(&pCsr->rec, nPayload+DBDATA_PADDING_BYTES);
             if( rc!=SQLITE_OK ) return rc;
             assert( nPayload!=0 );
-            pCsr->nRec = nPayload;
 
             /* Load the nLocal bytes of payload */
             memcpy(pCsr->rec.aBuf, &pCsr->aPage[iOff], nLocal);
@@ -696,6 +695,7 @@ static int dbdataNext(sqlite3_vtab_cursor *pCursor){
               nPayload -= nRem;
             }
             memset(&pCsr->rec.aBuf[nPayload], 0, DBDATA_PADDING_BYTES);
+            pCsr->nRec = nPayload;
     
             iHdr = dbdataGetVarintU32(pCsr->rec.aBuf, &nHdr);
             if( nHdr>nPayload ) nHdr = 0;
index 7d77c4e1d24dc804ec458f2c7ceeee8b636aab23..d003fac95fb3a745e123778bc9bc043a7f8202ed 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Avoid\san\sOP_Next\sin\scases\swhere\san\sIN(...)\squery\sagainst\sa\sUNIQUE\sindex\smay\sreturn\sat\smost\s1\srow.
-D 2024-05-02T14:48:58.295
+C Fix\sa\scase\swhere\sthe\srecovery\sextension\smight\swrite\suninitialized\sdata\sto\sthe\srecovered\sdatabase.
+D 2024-05-02T17:46:52.967
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -478,7 +478,7 @@ F ext/rbu/rbuvacuum4.test ffccd22f67e2d0b380d2889685742159dfe0d19a3880ca3d2d1d69
 F ext/rbu/sqlite3rbu.c 4a3376c0fb9a844a799ac529fb81260523f6b13c9f629bc270c632dbae5fc1f8
 F ext/rbu/sqlite3rbu.h 9d923eb135c5d04aa6afd7c39ca47b0d1d0707c100e02f19fdde6a494e414304
 F ext/rbu/test_rbu.c ee6ede75147bc081fe9bc3931e6b206277418d14d3fbceea6fdc6216d9b47055
-F ext/recover/dbdata.c 520636e61eddfa22fe13b0324c0e7b67b699464ff63aeaf4c26ff00b7ba0844c
+F ext/recover/dbdata.c e518c1a221a259a1ea594d9db8fce356861bfa450e6f54eda999242b9bd5c50a
 F ext/recover/recover1.test c484d01502239f11b61f23c1cee9f5dd19fa17617f8974e42e74d64639c524cf
 F ext/recover/recover_common.tcl a61306c1eb45c0c3fc45652c35b2d4ec19729e340bdf65a272ce4c229cefd85a
 F ext/recover/recoverbuild.test c74170e0f7b02456af41838afeb5353fdb985a48cc2331d661bbabbca7c6b8e3
@@ -2188,9 +2188,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 71f08b912251c8a3ac1bd8e344903336648e4187f7493f8c126e60b3b51b9f09 560f64157d2fe40e107582eebb6526185c9c43305e364f4132e182dbec5b210a
-R 86283dd1f6bad0a3523b1ba3ad89b434
-T +closed 560f64157d2fe40e107582eebb6526185c9c43305e364f4132e182dbec5b210a
+P d7648e21605a0b381b1935a47e5a77bdfacc4cc96f03d6bb7956f8f4e6a40648
+R 91204a904de412874c1ad0642f190840
 U dan
-Z 136e857f8914132ecc08f9fc952c59a7
+Z c29162d93ac6c523dea45672137e5762
 # Remove this line to create a well-formed Fossil manifest.
index d6d09be1f31867e797038642864b59bb9d55b7c4..1fad912567c0fe6f17547927a8c6ffc239a04c72 100644 (file)
@@ -1 +1 @@
-d7648e21605a0b381b1935a47e5a77bdfacc4cc96f03d6bb7956f8f4e6a40648
\ No newline at end of file
+8519b4d0393ed17eed06bceffbc891fe8cae0bc1d466a79eba0602ef46b07c56
\ No newline at end of file