]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change the VDBE so that all registers are initialized to "Invalid" instead of
authordrh <drh@noemail.net>
Fri, 9 Dec 2011 18:06:44 +0000 (18:06 +0000)
committerdrh <drh@noemail.net>
Fri, 9 Dec 2011 18:06:44 +0000 (18:06 +0000)
NULL and report errors on any attempted read of an Invalid register.  This
will help prevent future bugs similar to [7bbfb7d442].

FossilOrigin-Name: 0064bab77149768640d7758a3e271d5a1d63b256

1  2 
manifest
manifest.uuid
src/vdbeaux.c

diff --cc manifest
index 9b3f6a87001e3f23195f22dcb721557a94542f99,84cc79d6f6b4615cf8d143fd6d9a26626cfea25a..a364c55cdf3c5164490799f074ce1a162cfd059d
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Modify\sthe\sOP_Once\sopcode\sso\sthat\sit\sworks\scorrectly\sin\strigger\ssub-programs.\sThis\sis\sa\scandidate\sfix\sfor\s[7bbfb7d442].
- D 2011-12-09T13:24:16.480
 -C Remove\san\sunnecessary\scondition.
 -D 2011-12-09T17:51:30.877
++C Change\sthe\sVDBE\sso\sthat\sall\sregisters\sare\sinitialized\sto\s"Invalid"\sinstead\sof\nNULL\sand\sreport\serrors\son\sany\sattempted\sread\sof\san\sInvalid\sregister.\s\sThis\nwill\shelp\sprevent\sfuture\sbugs\ssimilar\sto\s[7bbfb7d442].
++D 2011-12-09T18:06:44.319
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
  F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@@ -243,7 -243,7 +243,7 @@@ F src/vdbe.c 029add0c5197a61db588824a58
  F src/vdbe.h 18f581cac1f4339ec3299f3e0cc6e11aec654cdb
  F src/vdbeInt.h 23a9506c9ab31e7823d7257d1828d2d7843443a0
  F src/vdbeapi.c 86189ebba2c49791d75eaa12929f3ce6527596bd
- F src/vdbeaux.c cdd74a86c6281b4393c5f94d8f5e40e160e44e19
 -F src/vdbeaux.c ff5eefb43647e1b1e60c1c23407523dbcfd0a86c
++F src/vdbeaux.c 71a0cd6ae14ddb2e2a6d6b97d5b54ae753272682
  F src/vdbeblob.c 32f2a4899d67f69634ea4dd93e3f651936d732cb
  F src/vdbemem.c 2fc78b3e0fabcc1eaa23cd79dd2e30e6dcfe1e56
  F src/vdbesort.c 468d43c057063e54da4f1988b38b4f46d60e7790
@@@ -978,7 -978,7 +978,7 @@@ F tool/tostr.awk e75472c2f98dd76e06b8c9
  F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
  F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
  F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
- P 3702a31e56fe02d14ce246109b318a124cad9f1a
- R 212172c6a4e482305cc0a6c8ccb724d1
- U dan
- Z fd67074fb89c049640d6ea2f96341088
 -P 421714dad32f3460fa40a7f65e9fa276f5e37f58
 -R d509edfce30feab29fb6f6730ef15f2e
++P 557c69055a300b4082830b5f4803091dca1c3140 d9ba023c608bce7768bc08478f9df9243f2e73ce
++R c86cf051b4407cf6125edf9f0e3046a6
+ U drh
 -Z 197b12cf9381c9c365def8e131bb26a7
++Z b55d92759eb01feac738f44135c5de26
diff --cc manifest.uuid
index ae75c089600cbb0f7fddc44ad76b726cda0eef8a,1c1bcc40a50afceeac1233faf08c688876fb7a1c..2ddca39cd51428b38bb877c4cd59c7bc097096dc
@@@ -1,1 -1,1 +1,1 @@@
- 557c69055a300b4082830b5f4803091dca1c3140
 -d9ba023c608bce7768bc08478f9df9243f2e73ce
++0064bab77149768640d7758a3e271d5a1d63b256
diff --cc src/vdbeaux.c
index b6e13f1335ccd4bcb8c643c34ee9b5265d7c26e7,c8f6911ae1ebcd48ba4724f0ae438f290ee5b2ab..8b085ea6ce3231e4cb3287fac6deef986b1a7f76
@@@ -2135,6 -2136,7 +2136,7 @@@ int sqlite3VdbeHalt(Vdbe *p)
    if( p->db->mallocFailed ){
      p->rc = SQLITE_NOMEM;
    }
 -  memset(p->aOnceFlag, 0, p->nOnceFlag);
++  if( p->aOnceFlag ) memset(p->aOnceFlag, 0, p->nOnceFlag);
    closeAllCursors(p);
    if( p->magic!=VDBE_MAGIC_RUN ){
      return SQLITE_OK;