]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add checks to the CLI that issue a warning if SQLite gets initialized prior
authordrh <drh@noemail.net>
Wed, 18 Apr 2018 10:44:58 +0000 (10:44 +0000)
committerdrh <drh@noemail.net>
Wed, 18 Apr 2018 10:44:58 +0000 (10:44 +0000)
to the last sqlite3_config() call.

FossilOrigin-Name: 40b117347763ef67f6621d3665ca7f287eebfd7435e3178055a8c624eb06b2c5

manifest
manifest.uuid
src/shell.c.in

index a8b377011a73295217819817338eb2237cbb2fcc..3c23f81b879f4ca0915367aac5d0391b0b700611 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sproblem\sin\sthe\sshell\spreventing\sit\sfrom\sworking\swith\nSQLITE_OMIT_AUTOINIT\sbuilds.
-D 2018-04-18T09:16:11.382
+C Add\schecks\sto\sthe\sCLI\sthat\sissue\sa\swarning\sif\sSQLite\sgets\sinitialized\sprior\nto\sthe\slast\ssqlite3_config()\scall.
+D 2018-04-18T10:44:58.478
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 7016fc56c6b9bfe5daac4f34be8be38d8c0b5fab79ccbfb764d3b23bf1c6fff3
@@ -492,7 +492,7 @@ F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c b3ace63b0470cb0063c2acc3a1dcb95eb432be45ed3c931854694f8a000cd763
 F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
 F src/select.c 3e84cb869930aa8fcacd3acbb1a0ec2d82736c8479d6a4367a5f1a926fb8a763
-F src/shell.c.in 7fbdc5c59265f50f266f45e822234d2c0911b96486b41a2970b19157f5bb3b37
+F src/shell.c.in bcde676be8aef998449e4fc8076c671257f41cbfe0cf39c87464b4558e6abf9a
 F src/sqlite.h.in e0be726ea6e4e6571724d39d242472ecd8bd1ba6f84ade88e1641bde98a6d02b
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 83a3c4ce93d650bedfd1aa558cb85a516bd6d094445ee989740827d0d944368d
@@ -1717,7 +1717,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 3b7801acff91905d0e78e06121ebcf2664f6de5f605699dc8726ec9bcb558eb8
-R a0146e2418a1016db3981cef5d6586f3
-U dan
-Z 637909db0518eab1f4c770ca4f8eeed3
+P 89209000a205c685bb6bd941376ef16e507919d192d606c1be110ccf2921d9bd
+R bb84285a37a886a8790327882559dcda
+U drh
+Z b6f12cf13b954089ea32b5cd283a6c15
index e1fe18baba045abd787a2919c95f0a275a8eaf40..dc5dd5482a2d1a5c536b2f93d6fa4161827d9aa2 100644 (file)
@@ -1 +1 @@
-89209000a205c685bb6bd941376ef16e507919d192d606c1be110ccf2921d9bd
\ No newline at end of file
+40b117347763ef67f6621d3665ca7f287eebfd7435e3178055a8c624eb06b2c5
\ No newline at end of file
index db21340c0a78cda5dc72f1835fa7f4e3f70cc451..87087ed45f9a6d5a16046a77b014870ca2788d57 100644 (file)
@@ -8097,6 +8097,17 @@ static void usage(int showDetail){
   exit(1);
 }
 
+/*
+** Internal check:  Verify that the SQLite is uninitialized.  Print a
+** error message if it is initialized.
+*/
+static void verify_uninitialized(void){
+  if( sqlite3_config(-1)==SQLITE_MISUSE ){
+    utf8_printf(stdout, "WARNING: attempt to configuration SQLite after"
+                        " initialization.\n");
+  }
+}
+
 /*
 ** Initialize the state information in data
 */
@@ -8108,6 +8119,7 @@ static void main_init(ShellState *data) {
   memcpy(data->rowSeparator,SEP_Row, 2);
   data->showHeader = 0;
   data->shellFlgs = SHFLG_Lookaside;
+  verify_uninitialized();
   sqlite3_config(SQLITE_CONFIG_URI, 1);
   sqlite3_config(SQLITE_CONFIG_LOG, shellLog, data);
   sqlite3_config(SQLITE_CONFIG_MULTITHREAD);
@@ -8248,6 +8260,7 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
   ** the size of the alternative malloc heap,
   ** and the first command to execute.
   */
+  verify_uninitialized();
   for(i=1; i<argc; i++){
     char *z;
     z = argv[i];
@@ -8348,6 +8361,8 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
 #endif
     }
   }
+  verify_uninitialized();
+
 
   /* All the sqlite3_config() calls have now been made. So it is safe
   ** to call sqlite3_initialize() and process any command line -vfs option. */