> Le 6 mai 2017 à 15:12, Gwendal Roué <[email protected]> a écrit :
>
> Hello,
>
> This email contains a patch that introduces a new authorizer action code:
> SQLITE_READ_TABLE.
My patch did not work when the authorizer callback would not return SQLITE_OK.
Please find the fixed patch below:
$ fossil info
project-name: SQLite
repository: /Users/groue/Documents/git/sqlite/sqlite.fossil
local-root: /Users/groue/Documents/git/sqlite/
config-db: /Users/groue/.fossil
project-code: 2ab58778c2967968b94284e989e43dc11791f548
checkout: b9a58daca80a815e87e541cb5fff9bc8b93f131d 2017-05-04 11:13:50 UTC
parent: e24b73820cdca07eee87853fe6dd9f60d76e039e 2017-05-03 19:36:50 UTC
tags: trunk
comment: Fix a collision of the "B0" identifier name between the termios.h
header file and the SHA3 implementation in the shell. (user: drh)
check-ins: 18701
$ fossil diff
Index: src/select.c
==================================================================
--- src/select.c
+++ src/select.c
@@ -4370,10 +4370,15 @@
}else{
/* An ordinary table or view name in the FROM clause */
assert( pFrom->pTab==0 );
pFrom->pTab = pTab = sqlite3LocateTableItem(pParse, 0, pFrom);
if( pTab==0 ) return WRC_Abort;
+ int iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
+ if( sqlite3AuthCheck(pParse, SQLITE_READ_TABLE, pTab->zName, 0,
db->aDb[iDb].zDbSName) ){
+ pFrom->pTab = 0;
+ return WRC_Abort;
+ }
if( pTab->nTabRef>=0xffff ){
sqlite3ErrorMsg(pParse, "too many references to \"%s\": max 65535",
pTab->zName);
pFrom->pTab = 0;
return WRC_Abort;
Index: src/sqlite.h.in
==================================================================
--- src/sqlite.h.in
+++ src/sqlite.h.in
@@ -2824,10 +2824,11 @@
#define SQLITE_DROP_VTABLE 30 /* Table Name Module Name */
#define SQLITE_FUNCTION 31 /* NULL Function Name */
#define SQLITE_SAVEPOINT 32 /* Operation Savepoint Name */
#define SQLITE_COPY 0 /* No longer used */
#define SQLITE_RECURSIVE 33 /* NULL NULL */
+#define SQLITE_READ_TABLE 34 /* Table Name NULL */
/*
** CAPI3REF: Tracing And Profiling Functions
** METHOD: sqlite3
**
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users