]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix trivial memory leaks in the shell and sqldiff programs.
authordan <dan@noemail.net>
Tue, 17 Nov 2020 21:09:56 +0000 (21:09 +0000)
committerdan <dan@noemail.net>
Tue, 17 Nov 2020 21:09:56 +0000 (21:09 +0000)
FossilOrigin-Name: 272793e5edc47e431be77d589718a001f2696869e3e15f1371a1890645a995a7

manifest
manifest.uuid
src/shell.c.in
tool/sqldiff.c

index c4aff416e68d59f5bc4ceb066e9184b14152b413..a277ee514078eae9423b2a669c8ece8f8d71ed75 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\stest\sfile\sbusy2.test\sso\sthat\sit\sworks\swith\sthe\s"inmemory_journal"\spermutation.
-D 2020-11-17T18:25:48.884
+C Fix\strivial\smemory\sleaks\sin\sthe\sshell\sand\ssqldiff\sprograms.
+D 2020-11-17T21:09:56.874
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -539,7 +539,7 @@ F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c 1948a92ca9eab776632816b97e57c61d933474a78aad4f4ef835c916a83dbb1c
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c 31387e56f5e6d1adc798dfa04b946001289a61e65acf4615f7b7130f121f3b9c
-F src/shell.c.in c0b4aea11596235e4206d671568590f9516f6db63755e82661cb75b662e3cbf2
+F src/shell.c.in 2871f579186e71db54cdf6b262951d2cd88aa61747a3f3e745ade425268fd6f6
 F src/sqlite.h.in ff32663b457306eb88c3039868280aa39da31162ed69c4e71fa8e028684e7277
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197
@@ -1850,7 +1850,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 7ce07da76b5e745783e703a834417d725b7d45fd
 F tool/split-sqlite3c.tcl 3efcd4240b738f6bb2b5af0aea7e1e0ef9bc1c61654f645076cec883030b710c
-F tool/sqldiff.c a3362140091b6d8a0771a589aaff147c114b13eb915927390587f0fa78c2040d
+F tool/sqldiff.c 4151108387cb56c08906e5ac8d6a353dcfe8fc6014eeded0f0910e2230ea0f5b
 F tool/sqlite3_analyzer.c.in 7eeaae8b0d7577662acaabbb11107af0659d1b41bc1dfdd4d91422de27127968
 F tool/sqltclsh.c.in 1bcc2e9da58fadf17b0bf6a50e68c1159e602ce057210b655d50bad5aaaef898
 F tool/sqltclsh.tcl 862f4cf1418df5e1315b5db3b5ebe88969e2a784525af5fbf9596592f14ed848
@@ -1885,7 +1885,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 7b229cb1202be203a87b8f47d284313f357deb1e6dfeb94bba7b46744c33512e
-R 94da5fd957c11cf4152e1820c907cfb0
+P b192fdddb63ac56fd6725032af110a069baac52347c0012c130bf34f3cbe69e4
+R c82023e65720caa1007ee5d3c2933c2e
 U dan
-Z 58b299c359ef0c819469c9e331b931a6
+Z 63e7d3fc62cc2655e0b754cd1bdd484b
index 96b4667baea12e659bb9e87831b6c8c401450a51..bd461454c0ebbf62c6559dac669476cccc191310 100644 (file)
@@ -1 +1 @@
-b192fdddb63ac56fd6725032af110a069baac52347c0012c130bf34f3cbe69e4
\ No newline at end of file
+272793e5edc47e431be77d589718a001f2696869e3e15f1371a1890645a995a7
\ No newline at end of file
index 64af946b76f986c2a18c7eedc30e0b78a3067702..5ebb6baec5633ac659bae6976d5db281c13df4ae 100644 (file)
@@ -11264,20 +11264,25 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
     for(i=0; i<nCmd; i++){
       if( azCmd[i][0]=='.' ){
         rc = do_meta_command(azCmd[i], &data);
-        if( rc ) return rc==2 ? 0 : rc;
+        if( rc ){
+          free(azCmd);
+          return rc==2 ? 0 : rc;
+        }
       }else{
         open_db(&data, 0);
         rc = shell_exec(&data, azCmd[i], &zErrMsg);
-        if( zErrMsg!=0 ){
-          utf8_printf(stderr,"Error: %s\n", zErrMsg);
+        if( zErrMsg || rc ){
+          if( zErrMsg!=0 ){
+            utf8_printf(stderr,"Error: %s\n", zErrMsg);
+          }else{
+            utf8_printf(stderr,"Error: unable to process SQL: %s\n", azCmd[i]);
+          }
+          sqlite3_free(zErrMsg);
+          free(azCmd);
           return rc!=0 ? rc : 1;
-        }else if( rc!=0 ){
-          utf8_printf(stderr,"Error: unable to process SQL: %s\n", azCmd[i]);
-          return rc;
         }
       }
     }
-    free(azCmd);
   }else{
     /* Run commands received from standard input
     */
@@ -11323,6 +11328,7 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
       rc = process_input(&data);
     }
   }
+  free(azCmd);
   set_table_name(&data, 0);
   if( data.db ){
     session_close_all(&data);
index 85cae56de883bf9142432ce36a47dcb142d46d85..123d5b49b78c992fda5f9b9f4c6ac2fbc60a6df1 100644 (file)
@@ -473,6 +473,7 @@ static void dump_table(const char *zTab, FILE *out){
     fprintf(out, "%s;\n", sqlite3_column_text(pStmt,0));
   }
   sqlite3_finalize(pStmt);
+  sqlite3_free(zId);
 }