Fossil SCM

Update SQLite from upstream to fix a potential crash bug if Fossil were compiled with SQLITE_ENABLE_STAT3.

drh 2013-01-08 14:03 trunk
Commit 1a52914b38d6d6f7f3b1c440f1b737034dd0e3bd
2 files changed +28 -29 +1 -1
+28 -29
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -673,11 +673,11 @@
673673
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
674674
** [sqlite_version()] and [sqlite_source_id()].
675675
*/
676676
#define SQLITE_VERSION "3.7.16"
677677
#define SQLITE_VERSION_NUMBER 3007016
678
-#define SQLITE_SOURCE_ID "2013-01-07 13:26:23 0a1207c895d9f77586a3a2a4965175909be90503"
678
+#define SQLITE_SOURCE_ID "2013-01-08 12:48:10 cda790280a52d65f98a45bacb9123367b159ac7c"
679679
680680
/*
681681
** CAPI3REF: Run-Time Library Version Numbers
682682
** KEYWORDS: sqlite3_version, sqlite3_sourceid
683683
**
@@ -73117,48 +73117,47 @@
7311773117
int wrong_num_args = 0; /* True if wrong number of arguments */
7311873118
int is_agg = 0; /* True if is an aggregate function */
7311973119
int auth; /* Authorization to use the function */
7312073120
int nId; /* Number of characters in function name */
7312173121
const char *zId; /* The function name. */
73122
+ FuncDef *pDef; /* Information about the function */
7312273123
u8 enc = ENC(pParse->db); /* The database encoding */
7312373124
7312473125
testcase( pExpr->op==TK_CONST_FUNC );
7312573126
assert( !ExprHasProperty(pExpr, EP_xIsSelect) );
7312673127
zId = pExpr->u.zToken;
7312773128
nId = sqlite3Strlen30(zId);
73128
- if( pParse->db->init.busy==0 ){
73129
- FuncDef *pDef = sqlite3FindFunction(pParse->db, zId, nId, n, enc, 0);
73130
- if( pDef==0 ){
73131
- pDef = sqlite3FindFunction(pParse->db, zId, nId, -2, enc, 0);
73132
- if( pDef==0 ){
73133
- no_such_func = 1;
73134
- }else{
73135
- wrong_num_args = 1;
73136
- }
73137
- }else{
73138
- is_agg = pDef->xFunc==0;
73139
- }
73140
-#ifndef SQLITE_OMIT_AUTHORIZATION
73141
- if( pDef ){
73142
- auth = sqlite3AuthCheck(pParse, SQLITE_FUNCTION, 0, pDef->zName, 0);
73143
- if( auth!=SQLITE_OK ){
73144
- if( auth==SQLITE_DENY ){
73145
- sqlite3ErrorMsg(pParse, "not authorized to use function: %s",
73146
- pDef->zName);
73147
- pNC->nErr++;
73148
- }
73149
- pExpr->op = TK_NULL;
73150
- return WRC_Prune;
73151
- }
73152
- }
73153
-#endif
73154
- }
73129
+ pDef = sqlite3FindFunction(pParse->db, zId, nId, n, enc, 0);
73130
+ if( pDef==0 ){
73131
+ pDef = sqlite3FindFunction(pParse->db, zId, nId, -2, enc, 0);
73132
+ if( pDef==0 ){
73133
+ no_such_func = 1;
73134
+ }else{
73135
+ wrong_num_args = 1;
73136
+ }
73137
+ }else{
73138
+ is_agg = pDef->xFunc==0;
73139
+ }
73140
+#ifndef SQLITE_OMIT_AUTHORIZATION
73141
+ if( pDef ){
73142
+ auth = sqlite3AuthCheck(pParse, SQLITE_FUNCTION, 0, pDef->zName, 0);
73143
+ if( auth!=SQLITE_OK ){
73144
+ if( auth==SQLITE_DENY ){
73145
+ sqlite3ErrorMsg(pParse, "not authorized to use function: %s",
73146
+ pDef->zName);
73147
+ pNC->nErr++;
73148
+ }
73149
+ pExpr->op = TK_NULL;
73150
+ return WRC_Prune;
73151
+ }
73152
+ }
73153
+#endif
7315573154
if( is_agg && (pNC->ncFlags & NC_AllowAgg)==0 ){
7315673155
sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId);
7315773156
pNC->nErr++;
7315873157
is_agg = 0;
73159
- }else if( no_such_func ){
73158
+ }else if( no_such_func && pParse->db->init.busy==0 ){
7316073159
sqlite3ErrorMsg(pParse, "no such function: %.*s", nId, zId);
7316173160
pNC->nErr++;
7316273161
}else if( wrong_num_args ){
7316373162
sqlite3ErrorMsg(pParse,"wrong number of arguments to function %.*s()",
7316473163
nId, zId);
7316573164
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -673,11 +673,11 @@
673 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
674 ** [sqlite_version()] and [sqlite_source_id()].
675 */
676 #define SQLITE_VERSION "3.7.16"
677 #define SQLITE_VERSION_NUMBER 3007016
678 #define SQLITE_SOURCE_ID "2013-01-07 13:26:23 0a1207c895d9f77586a3a2a4965175909be90503"
679
680 /*
681 ** CAPI3REF: Run-Time Library Version Numbers
682 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
683 **
@@ -73117,48 +73117,47 @@
73117 int wrong_num_args = 0; /* True if wrong number of arguments */
73118 int is_agg = 0; /* True if is an aggregate function */
73119 int auth; /* Authorization to use the function */
73120 int nId; /* Number of characters in function name */
73121 const char *zId; /* The function name. */
 
73122 u8 enc = ENC(pParse->db); /* The database encoding */
73123
73124 testcase( pExpr->op==TK_CONST_FUNC );
73125 assert( !ExprHasProperty(pExpr, EP_xIsSelect) );
73126 zId = pExpr->u.zToken;
73127 nId = sqlite3Strlen30(zId);
73128 if( pParse->db->init.busy==0 ){
73129 FuncDef *pDef = sqlite3FindFunction(pParse->db, zId, nId, n, enc, 0);
73130 if( pDef==0 ){
73131 pDef = sqlite3FindFunction(pParse->db, zId, nId, -2, enc, 0);
73132 if( pDef==0 ){
73133 no_such_func = 1;
73134 }else{
73135 wrong_num_args = 1;
73136 }
73137 }else{
73138 is_agg = pDef->xFunc==0;
73139 }
73140 #ifndef SQLITE_OMIT_AUTHORIZATION
73141 if( pDef ){
73142 auth = sqlite3AuthCheck(pParse, SQLITE_FUNCTION, 0, pDef->zName, 0);
73143 if( auth!=SQLITE_OK ){
73144 if( auth==SQLITE_DENY ){
73145 sqlite3ErrorMsg(pParse, "not authorized to use function: %s",
73146 pDef->zName);
73147 pNC->nErr++;
73148 }
73149 pExpr->op = TK_NULL;
73150 return WRC_Prune;
73151 }
73152 }
73153 #endif
73154 }
73155 if( is_agg && (pNC->ncFlags & NC_AllowAgg)==0 ){
73156 sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId);
73157 pNC->nErr++;
73158 is_agg = 0;
73159 }else if( no_such_func ){
73160 sqlite3ErrorMsg(pParse, "no such function: %.*s", nId, zId);
73161 pNC->nErr++;
73162 }else if( wrong_num_args ){
73163 sqlite3ErrorMsg(pParse,"wrong number of arguments to function %.*s()",
73164 nId, zId);
73165
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -673,11 +673,11 @@
673 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
674 ** [sqlite_version()] and [sqlite_source_id()].
675 */
676 #define SQLITE_VERSION "3.7.16"
677 #define SQLITE_VERSION_NUMBER 3007016
678 #define SQLITE_SOURCE_ID "2013-01-08 12:48:10 cda790280a52d65f98a45bacb9123367b159ac7c"
679
680 /*
681 ** CAPI3REF: Run-Time Library Version Numbers
682 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
683 **
@@ -73117,48 +73117,47 @@
73117 int wrong_num_args = 0; /* True if wrong number of arguments */
73118 int is_agg = 0; /* True if is an aggregate function */
73119 int auth; /* Authorization to use the function */
73120 int nId; /* Number of characters in function name */
73121 const char *zId; /* The function name. */
73122 FuncDef *pDef; /* Information about the function */
73123 u8 enc = ENC(pParse->db); /* The database encoding */
73124
73125 testcase( pExpr->op==TK_CONST_FUNC );
73126 assert( !ExprHasProperty(pExpr, EP_xIsSelect) );
73127 zId = pExpr->u.zToken;
73128 nId = sqlite3Strlen30(zId);
73129 pDef = sqlite3FindFunction(pParse->db, zId, nId, n, enc, 0);
73130 if( pDef==0 ){
73131 pDef = sqlite3FindFunction(pParse->db, zId, nId, -2, enc, 0);
73132 if( pDef==0 ){
73133 no_such_func = 1;
73134 }else{
73135 wrong_num_args = 1;
73136 }
73137 }else{
73138 is_agg = pDef->xFunc==0;
73139 }
73140 #ifndef SQLITE_OMIT_AUTHORIZATION
73141 if( pDef ){
73142 auth = sqlite3AuthCheck(pParse, SQLITE_FUNCTION, 0, pDef->zName, 0);
73143 if( auth!=SQLITE_OK ){
73144 if( auth==SQLITE_DENY ){
73145 sqlite3ErrorMsg(pParse, "not authorized to use function: %s",
73146 pDef->zName);
73147 pNC->nErr++;
73148 }
73149 pExpr->op = TK_NULL;
73150 return WRC_Prune;
73151 }
73152 }
73153 #endif
 
 
73154 if( is_agg && (pNC->ncFlags & NC_AllowAgg)==0 ){
73155 sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId);
73156 pNC->nErr++;
73157 is_agg = 0;
73158 }else if( no_such_func && pParse->db->init.busy==0 ){
73159 sqlite3ErrorMsg(pParse, "no such function: %.*s", nId, zId);
73160 pNC->nErr++;
73161 }else if( wrong_num_args ){
73162 sqlite3ErrorMsg(pParse,"wrong number of arguments to function %.*s()",
73163 nId, zId);
73164
+1 -1
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -107,11 +107,11 @@
107107
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108108
** [sqlite_version()] and [sqlite_source_id()].
109109
*/
110110
#define SQLITE_VERSION "3.7.16"
111111
#define SQLITE_VERSION_NUMBER 3007016
112
-#define SQLITE_SOURCE_ID "2013-01-07 13:26:23 0a1207c895d9f77586a3a2a4965175909be90503"
112
+#define SQLITE_SOURCE_ID "2013-01-08 12:48:10 cda790280a52d65f98a45bacb9123367b159ac7c"
113113
114114
/*
115115
** CAPI3REF: Run-Time Library Version Numbers
116116
** KEYWORDS: sqlite3_version, sqlite3_sourceid
117117
**
118118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -107,11 +107,11 @@
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.7.16"
111 #define SQLITE_VERSION_NUMBER 3007016
112 #define SQLITE_SOURCE_ID "2013-01-07 13:26:23 0a1207c895d9f77586a3a2a4965175909be90503"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -107,11 +107,11 @@
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.7.16"
111 #define SQLITE_VERSION_NUMBER 3007016
112 #define SQLITE_SOURCE_ID "2013-01-08 12:48:10 cda790280a52d65f98a45bacb9123367b159ac7c"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button