1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-16 23:02:26 +03:00

If SQLITE_OMIT_UTF16 is defined, avoid setting the 'enc' field of Schema objects to any value except SQLITE_UTF8. Otherwise, assert() statements may fail or spurious SQLITE_NOMEM errors may be returned at the vdbe level later on.

FossilOrigin-Name: 69746ef787680a4b7590bd1d3c86b229d9d0dac4
This commit is contained in:
dan
2013-03-08 07:10:37 +00:00
parent 5acefe7dbe
commit dbd4d5fc77
3 changed files with 15 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
C Skip\stests\sthat\srequire\sUTF-16\ssupport\swhen\scompiled\swith\sSQLITE_OMIT_UTF16. C If\sSQLITE_OMIT_UTF16\sis\sdefined,\savoid\ssetting\sthe\s'enc'\sfield\sof\sSchema\sobjects\sto\sany\svalue\sexcept\sSQLITE_UTF8.\sOtherwise,\sassert()\sstatements\smay\sfail\sor\sspurious\sSQLITE_NOMEM\serrors\smay\sbe\sreturned\sat\sthe\svdbe\slevel\slater\son.
D 2013-03-07T09:39:18.757 D 2013-03-08T07:10:37.045
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 9a804abbd3cae82d196e4d33aba13239e32522a5 F Makefile.in 9a804abbd3cae82d196e4d33aba13239e32522a5
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -169,7 +169,7 @@ F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c
F src/pcache1.c 9fd22671c270b35131ef480bbc00392b8b5f8ab9 F src/pcache1.c 9fd22671c270b35131ef480bbc00392b8b5f8ab9
F src/pragma.c bdb484d0283965c431d4153f28c30f836a1f16b1 F src/pragma.c bdb484d0283965c431d4153f28c30f836a1f16b1
F src/prepare.c 931ad0d852a0df48f79adcba6ce79ca5f475625c F src/prepare.c 78cd7ae8cd0d8de8ef8a8b5352fc5f38693a0852
F src/printf.c 4a9f882f1c1787a8b494a2987765acf9d97ac21f F src/printf.c 4a9f882f1c1787a8b494a2987765acf9d97ac21f
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
F src/resolve.c 9079da7d59aed2bb14ec8315bc7f720dd85b5b65 F src/resolve.c 9079da7d59aed2bb14ec8315bc7f720dd85b5b65
@@ -1037,7 +1037,10 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
P 10ace06be7fbe9a76a201c418b2af453c7a69043 P e39391422e748407d74853d3de297dc1ea6b991d
R 4a6c0696fed39506ac10ad23e245be27 R 3289616a77804b5f23977ebea41b37fc
U mistachkin T *branch * experimental
Z 2203d346668b3376e187a4b6cb595762 T *sym-experimental *
T -sym-trunk *
U dan
Z 244b3a671be0f30c11055ae03af7e004

View File

@@ -1 +1 @@
e39391422e748407d74853d3de297dc1ea6b991d 69746ef787680a4b7590bd1d3c86b229d9d0dac4

View File

@@ -259,11 +259,15 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
*/ */
if( meta[BTREE_TEXT_ENCODING-1] ){ /* text encoding */ if( meta[BTREE_TEXT_ENCODING-1] ){ /* text encoding */
if( iDb==0 ){ if( iDb==0 ){
#ifndef SQLITE_OMIT_UTF16
u8 encoding; u8 encoding;
/* If opening the main database, set ENC(db). */ /* If opening the main database, set ENC(db). */
encoding = (u8)meta[BTREE_TEXT_ENCODING-1] & 3; encoding = (u8)meta[BTREE_TEXT_ENCODING-1] & 3;
if( encoding==0 ) encoding = SQLITE_UTF8; if( encoding==0 ) encoding = SQLITE_UTF8;
ENC(db) = encoding; ENC(db) = encoding;
#else
ENC(db) = SQLITE_UTF8;
#endif
}else{ }else{
/* If opening an attached database, the encoding much match ENC(db) */ /* If opening an attached database, the encoding much match ENC(db) */
if( meta[BTREE_TEXT_ENCODING-1]!=ENC(db) ){ if( meta[BTREE_TEXT_ENCODING-1]!=ENC(db) ){