]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a memory leak in fts3 that can occur in an OOM condition.
authordan <dan@noemail.net>
Sat, 4 Dec 2010 18:20:18 +0000 (18:20 +0000)
committerdan <dan@noemail.net>
Sat, 4 Dec 2010 18:20:18 +0000 (18:20 +0000)
FossilOrigin-Name: 507027b70f71689f77dee3e849ebc66a1c4c3166

ext/fts3/fts3.c
manifest
manifest.uuid

index 0dce174628173546565dc85e52c0b6e24b2324ca..8d517219a2fefc5c2fa41a0666c09a47b5a76d6c 100644 (file)
@@ -2683,8 +2683,13 @@ static int fts3EvalExpr(
         }
       }
 
-      *paOut = aRet;
-      *pnOut = nRet;
+      if( rc==SQLITE_OK ){
+        *paOut = aRet;
+        *pnOut = nRet;
+      }else{
+        assert( *paOut==0 );
+        sqlite3_free(aRet);
+      }
       sqlite3_free(aExpr);
       fts3ExprFreeSegReaders(pExpr);
 
@@ -2757,6 +2762,7 @@ static int fts3EvalExpr(
     }
   }
 
+  assert( rc==SQLITE_OK || *paOut==0 );
   return rc;
 }
 
index a59c15c8a9dc9277aa2687827128361b09daccce..38bb2faaffe69342b6ba635e00a28abf658570e3 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,5 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-C Remove\san\sover-zealous\scall\sto\smemAboutToChange()\sfrom\sOP_MustBeInt.\nOP_MustBeInt\swill\snever\sinvalidate\sthe\sMem.z\spointer\sso\sthe\smemAboutToChange()\ncall\sis\snot\snecessary.
-D 2010-12-03T18:57:18
+C Fix\sa\smemory\sleak\sin\sfts3\sthat\scan\soccur\sin\san\sOOM\scondition.
+D 2010-12-04T18:20:19
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 4547616ad2286053af6ccccefa242dc925e49bf0
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -64,7 +61,7 @@ F ext/fts2/mkfts2amal.tcl 974d5d438cb3f7c4a652639262f82418c1e4cff0
 F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a
 F ext/fts3/README.tokenizers 998756696647400de63d5ba60e9655036cb966e9
 F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
-F ext/fts3/fts3.c bb233da09f1ec8e52717167cd42b7c7cbd98a58c
+F ext/fts3/fts3.c 44f998657ec849362484bb389c5728e821fc8c59
 F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
 F ext/fts3/fts3Int.h a6c69c1c5e2c8c19172ddff42d262c087dcd7337
 F ext/fts3/fts3_expr.c 5f49e0deaf723724b08100bb3ff40aab02ad0c93
@@ -896,14 +893,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 2e800cb87ded1a080469ea46878ac61f945f789e
-R 0305b455a681c9cda96b07aa02494a33
-U drh
-Z 8033f986d410d173570ae1d2cc4587d6
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQFM+T2RoxKgR168RlERAk/OAJ9PTxhYXVCTAiWa/S8boSTCXET++ACghJyR
-1zkq1FytFinYYQb/2XlEFz0=
-=u7bI
------END PGP SIGNATURE-----
+P 841cf7a7dbf0947cb7bde864609a8d3294f78689
+R 269151d064cbf251d3b04ce94d96a176
+U dan
+Z 3867b6d56253dfd7617916a246ca3877
index 13f71cee4119671fd6d5db8b28c81a503fd4ab1f..b959dcbc48f4167f8c70ba4368b7e64c5b5f9ec8 100644 (file)
@@ -1 +1 @@
-841cf7a7dbf0947cb7bde864609a8d3294f78689
\ No newline at end of file
+507027b70f71689f77dee3e849ebc66a1c4c3166
\ No newline at end of file