Skip to content

Commit 0d21200

Browse files
committed
Snapshot of upstream SQLite 3.51.2
1 parent 99c05ab commit 0d21200

25 files changed

Lines changed: 415 additions & 92 deletions

Makefile.msc

Lines changed: 133 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -805,17 +805,21 @@ BCC = $(BCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
805805
!IF $(DEBUG)>1
806806
TCC = $(TCC) -MDd
807807
BCC = $(BCC) -MDd
808+
ZLIBCFLAGS = -nologo -MDd -W3 -O2 -Oy- -Zi
808809
!ELSE
809810
TCC = $(TCC) -MD
810811
BCC = $(BCC) -MD
812+
ZLIBCFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi
811813
!ENDIF
812814
!ELSE
813815
!IF $(DEBUG)>1
814816
TCC = $(TCC) -MTd
815817
BCC = $(BCC) -MTd
818+
ZLIBCFLAGS = -nologo -MTd -W3 -O2 -Oy- -Zi
816819
!ELSE
817820
TCC = $(TCC) -MT
818821
BCC = $(BCC) -MT
822+
ZLIBCFLAGS = -nologo -MT -W3 -O2 -Oy- -Zi
819823
!ENDIF
820824
!ENDIF
821825

@@ -2416,7 +2420,7 @@ shell.c: $(SHELL_DEP) $(TOP)\tool\mkshellc.tcl $(JIM_TCLSH)
24162420
$(JIM_TCLSH) $(TOP)\tool\mkshellc.tcl shell.c
24172421

24182422
zlib:
2419-
pushd $(ZLIBDIR) && $(MAKE) /f win32\Makefile.msc clean $(ZLIBLIB) && popd
2423+
pushd $(ZLIBDIR) && $(MAKE) /f win32\Makefile.msc clean $(ZLIBLIB) CFLAGS="$(ZLIBCFLAGS)" && popd
24202424

24212425
# Rules to build the extension objects.
24222426
#
@@ -2811,6 +2815,134 @@ tcl-env:
28112815
@echo JIM_TCLSH = $(JIM_TCLSH)
28122816
@echo VISUALSTUDIOVERSION = $(VISUALSTUDIOVERSION)
28132817

2818+
env:
2819+
@echo ALL_TCL_TARGETS = $(ALL_TCL_TARGETS)
2820+
@echo API_ARMOR = $(API_ARMOR)
2821+
@echo ASAN = $(ASAN)
2822+
@echo BCC = $(BCC)
2823+
@echo BUILD_ZLIB = $(BUILD_ZLIB)
2824+
@echo CC = $(CC)
2825+
@echo CCOPTS = $(CCOPTS)
2826+
@echo CHECKER_DEPS = $(CHECKER_DEPS)
2827+
@echo CORE_CCONV_OPTS = $(CORE_CCONV_OPTS)
2828+
@echo CORE_COMPILE_OPTS = $(CORE_COMPILE_OPTS)
2829+
@echo CORE_LINK_DEP = $(CORE_LINK_DEP)
2830+
@echo CORE_LINK_OPTS = $(CORE_LINK_OPTS)
2831+
@echo CRTLIBPATH = $(CRTLIBPATH)
2832+
@echo CSC = $(CSC)
2833+
@echo DBFUZZ_COMPILE_OPTS = $(DBFUZZ_COMPILE_OPTS)
2834+
@echo DEBUG = $(DEBUG)
2835+
@echo DYNAMIC_SHELL = $(DYNAMIC_SHELL)
2836+
@echo EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS)
2837+
@echo EXTHDR = $(EXTHDR)
2838+
@echo EXTRA_SRC = $(EXTRA_SRC)
2839+
@echo FOR_UWP = $(FOR_UWP)
2840+
@echo FUZZCHECK_OPTS = $(FUZZCHECK_OPTS)
2841+
@echo FUZZCHECK_SRC = $(FUZZCHECK_SRC)
2842+
@echo FUZZDATA = $(FUZZDATA)
2843+
@echo FUZZERSHELL_COMPILE_OPTS = $(FUZZERSHELL_COMPILE_OPTS)
2844+
@echo HDR = $(HDR)
2845+
@echo ICUDIR = $(ICUDIR)
2846+
@echo ICUINCDIR = $(ICUINCDIR)
2847+
@echo ICULIBDIR = $(ICULIBDIR)
2848+
@echo JIM_TCLSH = $(JIM_TCLSH)
2849+
@echo KV_COMPILE_OPTS = $(KV_COMPILE_OPTS)
2850+
@echo LDFLAGS = $(LDFLAGS)
2851+
@echo LD = $(LD)
2852+
@echo LIBICU = $(LIBICU)
2853+
@echo LIBOBJ = $(LIBOBJ)
2854+
@echo LIBREADLINE = $(LIBREADLINE)
2855+
@echo LIBRESOBJS = $(LIBRESOBJS)
2856+
@echo LIBTCLPATH = $(LIBTCLPATH)
2857+
@echo LIBTCLSTUB = $(LIBTCLSTUB)
2858+
@echo LIBTCL = $(LIBTCL)
2859+
@echo LTCOMPILE = $(LTCOMPILE)
2860+
@echo LTLIB = $(LTLIB)
2861+
@echo LTLIBOPTS = $(LTLIBOPTS)
2862+
@echo LTLIBPATHS = $(LTLIBPATHS)
2863+
@echo LTLIBS = $(LTLIBS)
2864+
@echo LTLINK = $(LTLINK)
2865+
@echo LTLINKOPTS = $(LTLINKOPTS)
2866+
@echo LTRCOMPILE = $(LTRCOMPILE)
2867+
@echo MEMDEBUG = $(MEMDEBUG)
2868+
@echo MINIMAL_AMALGAMATION = $(MINIMAL_AMALGAMATION)
2869+
@echo MPTESTER_COMPILE_OPTS = $(MPTESTER_COMPILE_OPTS)
2870+
@echo NCC = $(NCC)
2871+
@echo NCRTLIBPATH = $(NCRTLIBPATH)
2872+
@echo NLTLIBPATHS = $(NLTLIBPATHS)
2873+
@echo NO_LINEMACROS = $(NO_LINEMACROS)
2874+
@echo NO_TCL = $(NO_TCL)
2875+
@echo NO_WARN = $(NO_WARN)
2876+
@echo NSDKLIBPATH = $(NSDKLIBPATH)
2877+
@echo NUCRTLIBPATH = $(NUCRTLIBPATH)
2878+
@echo OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS)
2879+
@echo OPTIMIZATIONS = $(OPTIMIZATIONS)
2880+
@echo OSSSHELL_SRC = $(OSSSHELL_SRC)
2881+
@echo OSTRACE = $(OSTRACE)
2882+
@echo RBU = $(RBU)
2883+
@echo RCC = $(RCC)
2884+
@echo RC = $(RC)
2885+
@echo READLINE_FLAGS = $(READLINE_FLAGS)
2886+
@echo REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS)
2887+
@echo RSYNC_OPT = $(RSYNC_OPT)
2888+
@echo RSYNC_SRC = $(RSYNC_SRC)
2889+
@echo SESSION = $(SESSION)
2890+
@echo SETLK_TIMEOUT = $(SETLK_TIMEOUT)
2891+
@echo SHELL_CCONV_OPTS = $(SHELL_CCONV_OPTS)
2892+
@echo SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS)
2893+
@echo SHELL_CORE_DEP = $(SHELL_CORE_DEP)
2894+
@echo SHELL_CORE_LIB = $(SHELL_CORE_LIB)
2895+
@echo SHELL_CORE_SRC = $(SHELL_CORE_SRC)
2896+
@echo SHELL_DEP = $(SHELL_DEP)
2897+
@echo SHELL_LINK_OPTS = $(SHELL_LINK_OPTS)
2898+
@echo SPLIT_AMALGAMATION = $(SPLIT_AMALGAMATION)
2899+
@echo SQLITETCLDECLSH = $(SQLITETCLDECLSH)
2900+
@echo SQLITE_TCL_DEP = $(SQLITE_TCL_DEP)
2901+
@echo SQLITETCLH = $(SQLITETCLH)
2902+
@echo SRC = $(SRC)
2903+
@echo STATICALLY_LINK_TCL = $(STATICALLY_LINK_TCL)
2904+
@echo ST_COMPILE_OPTS = $(ST_COMPILE_OPTS)
2905+
@echo STORELIBPATH = $(STORELIBPATH)
2906+
@echo SYMBOLS = $(SYMBOLS)
2907+
@echo TCC = $(TCC)
2908+
@echo TCLDIR = $(TCLDIR)
2909+
@echo TCLINCDIR = $(TCLINCDIR)
2910+
@echo TCLLIBDIR = $(TCLLIBDIR)
2911+
@echo TCLLIBPATHS = $(TCLLIBPATHS)
2912+
@echo TCLLIBS = $(TCLLIBS)
2913+
@echo TCLSH_CMD = $(TCLSH_CMD)
2914+
@echo TCLSQLITEEX = $(TCLSQLITEEX)
2915+
@echo TCLSUFFIX = $(TCLSUFFIX)
2916+
@echo TCLVERSION = $(TCLVERSION)
2917+
@echo TEST_CCONV_OPTS = $(TEST_CCONV_OPTS)
2918+
@echo TESTEXT = $(TESTEXT)
2919+
@echo TESTFIXTURE_DEP = $(TESTFIXTURE_DEP)
2920+
@echo TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS)
2921+
@echo TESTFIXTURE_SRC = $(TESTFIXTURE_SRC)
2922+
@echo TESTOPTS = $(TESTOPTS)
2923+
@echo TESTPROGS = $(TESTPROGS)
2924+
@echo TESTSRC = $(TESTSRC)
2925+
@echo TLIBS = $(TLIBS)
2926+
@echo TOP = $(TOP)
2927+
@echo UCRTLIBPATH = $(UCRTLIBPATH)
2928+
@echo USE_AMALGAMATION = $(USE_AMALGAMATION)
2929+
@echo USE_CRT_DLL = $(USE_CRT_DLL)
2930+
@echo USE_FATAL_WARN = $(USE_FATAL_WARN)
2931+
@echo USE_FULLWARN = $(USE_FULLWARN)
2932+
@echo USE_ICU = $(USE_ICU)
2933+
@echo USE_LISTINGS = $(USE_LISTINGS)
2934+
@echo USE_NATIVE_LIBPATHS = $(USE_NATIVE_LIBPATHS)
2935+
@echo USE_RC = $(USE_RC)
2936+
@echo USE_RUNTIME_CHECKS = $(USE_RUNTIME_CHECKS)
2937+
@echo USE_SEH = $(USE_SEH)
2938+
@echo USE_STDCALL = $(USE_STDCALL)
2939+
@echo USE_ZLIB = $(USE_ZLIB)
2940+
@echo XCOMPILE = $(XCOMPILE)
2941+
@echo ZLIBDIR = $(ZLIBDIR)
2942+
@echo ZLIBINCDIR = $(ZLIBINCDIR)
2943+
@echo ZLIBLIBDIR = $(ZLIBLIBDIR)
2944+
@echo ZLIBLIB = $(ZLIBLIB)
2945+
28142946
moreclean: clean
28152947
del /Q $(SQLITE3C) $(SQLITE3H) 2>NUL
28162948
# <</mark>>

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.51.1
1+
3.51.2

autoconf/Makefile.msc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,17 +695,21 @@ BCC = $(BCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
695695
!IF $(DEBUG)>1
696696
TCC = $(TCC) -MDd
697697
BCC = $(BCC) -MDd
698+
ZLIBCFLAGS = -nologo -MDd -W3 -O2 -Oy- -Zi
698699
!ELSE
699700
TCC = $(TCC) -MD
700701
BCC = $(BCC) -MD
702+
ZLIBCFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi
701703
!ENDIF
702704
!ELSE
703705
!IF $(DEBUG)>1
704706
TCC = $(TCC) -MTd
705707
BCC = $(BCC) -MTd
708+
ZLIBCFLAGS = -nologo -MTd -W3 -O2 -Oy- -Zi
706709
!ELSE
707710
TCC = $(TCC) -MT
708711
BCC = $(BCC) -MT
712+
ZLIBCFLAGS = -nologo -MT -W3 -O2 -Oy- -Zi
709713
!ENDIF
710714
!ENDIF
711715

ext/fts5/fts5Int.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,13 @@ typedef sqlite3_uint64 u64;
8181
# define FLEXARRAY 1
8282
#endif
8383

84-
#endif
84+
#endif /* SQLITE_AMALGAMATION */
85+
86+
/*
87+
** Constants for the largest and smallest possible 32-bit signed integers.
88+
*/
89+
# define LARGEST_INT32 ((int)(0x7fffffff))
90+
# define SMALLEST_INT32 ((int)((-1) - LARGEST_INT32))
8591

8692
/* Truncate very long tokens to this many bytes. Hard limit is
8793
** (65536-1-1-4-9)==65521 bytes. The limiting factor is the 16-bit offset

ext/fts5/fts5_index.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5931,7 +5931,7 @@ int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge){
59315931
fts5StructureRelease(pStruct);
59325932
pStruct = pNew;
59335933
nMin = 1;
5934-
nMerge = nMerge*-1;
5934+
nMerge = (nMerge==SMALLEST_INT32 ? LARGEST_INT32 : (nMerge*-1));
59355935
}
59365936
if( pStruct && pStruct->nLevel ){
59375937
if( fts5IndexMerge(p, &pStruct, nMerge, nMin) ){

ext/fts5/test/fts5merge.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,22 @@ do_execsql_test 6.3 {
238238
INSERT INTO g1(g1) VALUES('integrity-check');
239239
}
240240

241+
#--------------------------------------------------------------------------
242+
# Check that passing -2147483648 as the parameter to a merge command
243+
# does not cause a signed integer overflow error.
244+
#
245+
reset_db
246+
do_execsql_test 7.0 {
247+
CREATE VIRTUAL TABLE f1 USING fts5(a);
248+
}
249+
do_execsql_test 7.1 {
250+
INSERT INTO f1 VALUES('one two three');
251+
INSERT INTO f1 VALUES('four five six');
252+
INSERT INTO f1 VALUES('seven eight nine');
253+
}
254+
do_execsql_test 7.2 {
255+
INSERT INTO f1(f1, rank) VALUES('merge', -2147483648);
256+
}
241257

242258

243259
finish_test

ext/misc/compress.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static void compressFunc(
5959
pIn = sqlite3_value_blob(argv[0]);
6060
nIn = sqlite3_value_bytes(argv[0]);
6161
nOut = 13 + nIn + (nIn+999)/1000;
62-
pOut = sqlite3_malloc( nOut+5 );
62+
pOut = sqlite3_malloc64( nOut+5 );
6363
for(i=4; i>=0; i--){
6464
x[i] = (nIn >> (7*(4-i)))&0x7f;
6565
}
@@ -98,7 +98,7 @@ static void uncompressFunc(
9898
nOut = (nOut<<7) | (pIn[i]&0x7f);
9999
if( (pIn[i]&0x80)!=0 ){ i++; break; }
100100
}
101-
pOut = sqlite3_malloc( nOut+1 );
101+
pOut = sqlite3_malloc64( nOut+1 );
102102
rc = uncompress(pOut, &nOut, &pIn[i], nIn-i);
103103
if( rc==Z_OK ){
104104
sqlite3_result_blob(context, pOut, nOut, sqlite3_free);

ext/misc/csv.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ SQLITE_EXTENSION_INIT1
6262
# define CSV_NOINLINE
6363
#endif
6464

65+
#ifndef SQLITEINT_H
66+
typedef sqlite3_int64 i64;
67+
#endif
6568

6669
/* Max size of the error message in a CsvReader */
6770
#define CSV_MXERR 200
@@ -74,9 +77,9 @@ typedef struct CsvReader CsvReader;
7477
struct CsvReader {
7578
FILE *in; /* Read the CSV text from this input stream */
7679
char *z; /* Accumulated text for a field */
77-
int n; /* Number of bytes in z */
78-
int nAlloc; /* Space allocated for z[] */
79-
int nLine; /* Current line number */
80+
i64 n; /* Number of bytes in z */
81+
i64 nAlloc; /* Space allocated for z[] */
82+
i64 nLine; /* Current line number */
8083
int bNotFirst; /* True if prior text has been seen */
8184
int cTerm; /* Character that terminated the most recent field */
8285
size_t iIn; /* Next unread character in the input buffer */
@@ -174,7 +177,7 @@ static int csv_getc(CsvReader *p){
174177
** Return 0 on success and non-zero if there is an OOM error */
175178
static CSV_NOINLINE int csv_resize_and_append(CsvReader *p, char c){
176179
char *zNew;
177-
int nNew = p->nAlloc*2 + 100;
180+
i64 nNew = p->nAlloc*2 + 100;
178181
zNew = sqlite3_realloc64(p->z, nNew);
179182
if( zNew ){
180183
p->z = zNew;
@@ -510,7 +513,6 @@ static int csvtabConnect(
510513
# define CSV_DATA (azPValue[1])
511514
# define CSV_SCHEMA (azPValue[2])
512515

513-
514516
assert( sizeof(azPValue)==sizeof(azParam) );
515517
memset(&sRdr, 0, sizeof(sRdr));
516518
memset(azPValue, 0, sizeof(azPValue));

ext/misc/fileio.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ static int fileStat(
329329
b1[sz] = 0;
330330
rc = _wstat(b1, pStatBuf);
331331
if( rc==0 ) statTimesToUtc(zPath, pStatBuf);
332+
sqlite3_free(b1);
332333
return rc;
333334
#else
334335
return stat(zPath, pStatBuf);

ext/misc/zipfile.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -875,7 +875,7 @@ static int zipfileGetEntry(
875875
);
876876
}else{
877877
aRead = (u8*)&aBlob[iOff + ZIPFILE_CDS_FIXED_SZ];
878-
if( (iOff + ZIPFILE_LFH_FIXED_SZ + nFile + nExtra)>nBlob ){
878+
if( (iOff + ZIPFILE_CDS_FIXED_SZ + nFile + nExtra)>nBlob ){
879879
rc = zipfileCorrupt(pzErr);
880880
}
881881
}

0 commit comments

Comments
 (0)