mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
More tests of the sqlite_set_authorizer() API together with fixes for bugs
that the new tests uncovered. (CVS 832) FossilOrigin-Name: cc2ae781ac186f9ee1afacdc9117087421955369
This commit is contained in:
20
manifest
20
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Make\sthe\sGLOB\swork\swrite\swith\supper-case\scharacters.\s\sTicket\s#226.\s(CVS\s831)
|
C More\stests\sof\sthe\ssqlite_set_authorizer()\sAPI\stogether\swith\sfixes\sfor\sbugs\nthat\sthe\snew\stests\suncovered.\s(CVS\s832)
|
||||||
D 2003-01-14T00:44:09
|
D 2003-01-14T02:49:27
|
||||||
F Makefile.in 6606854b1512f185b8e8c779b8d7fc2750463d64
|
F Makefile.in 6606854b1512f185b8e8c779b8d7fc2750463d64
|
||||||
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
|
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
|
||||||
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
|
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
|
||||||
@@ -21,10 +21,10 @@ F sqlite.1 83f4a9d37bdf2b7ef079a82d54eaf2e3509ee6ea
|
|||||||
F src/auth.c 9c2db0bc7707f2d2e227f47e3d557b41d44ade75
|
F src/auth.c 9c2db0bc7707f2d2e227f47e3d557b41d44ade75
|
||||||
F src/btree.c 131b5903f66e148f0f9af0cedd1c6654932c4e04
|
F src/btree.c 131b5903f66e148f0f9af0cedd1c6654932c4e04
|
||||||
F src/btree.h 17710339f7a8f46e3c7d6d0d4648ef19c584ffda
|
F src/btree.h 17710339f7a8f46e3c7d6d0d4648ef19c584ffda
|
||||||
F src/build.c 94cd4ed1724b3e7304387b2caece75aff39d7f6e
|
F src/build.c e107e7b837e24472d36bdf90498ed3dd458c0a8d
|
||||||
F src/delete.c cbd499f3f9297504c42e328af89bef1a2113d04c
|
F src/delete.c cbd499f3f9297504c42e328af89bef1a2113d04c
|
||||||
F src/encode.c 09d1fe8a2e97ff94cce496e2909e2ebc8947960b
|
F src/encode.c 09d1fe8a2e97ff94cce496e2909e2ebc8947960b
|
||||||
F src/expr.c d8b319f25335443a415a639aec8e0edc64e3ab6c
|
F src/expr.c 19f315a6c274897275d15ad7f238f604d178d706
|
||||||
F src/func.c 90c583f0b91220f7cd411a2407deaf9327245d63
|
F src/func.c 90c583f0b91220f7cd411a2407deaf9327245d63
|
||||||
F src/hash.c 4fc39feb7b7711f6495ee9f2159559bedb043e1f
|
F src/hash.c 4fc39feb7b7711f6495ee9f2159559bedb043e1f
|
||||||
F src/hash.h cd0433998bc1a3759d244e1637fe5a3c13b53bf8
|
F src/hash.h cd0433998bc1a3759d244e1637fe5a3c13b53bf8
|
||||||
@@ -41,7 +41,7 @@ F src/random.c 19e8e00fe0df32a742f115773f57651be327cabe
|
|||||||
F src/select.c 5ce75c1381d8ec3b89ea4d7eb5171bc57785e610
|
F src/select.c 5ce75c1381d8ec3b89ea4d7eb5171bc57785e610
|
||||||
F src/shell.c c9946847b81b8b7f32ad195498dafbc623c6874f
|
F src/shell.c c9946847b81b8b7f32ad195498dafbc623c6874f
|
||||||
F src/shell.tcl 27ecbd63dd88396ad16d81ab44f73e6c0ea9d20e
|
F src/shell.tcl 27ecbd63dd88396ad16d81ab44f73e6c0ea9d20e
|
||||||
F src/sqlite.h.in 9974a66d4caa4880fe44ebdc306f5f94c6a4d9c0
|
F src/sqlite.h.in 7907095c144091a611faef89d771bc0ee4e3ab9d
|
||||||
F src/sqliteInt.h bc986d4fc3d8285cec370eb5e305d5499f422a31
|
F src/sqliteInt.h bc986d4fc3d8285cec370eb5e305d5499f422a31
|
||||||
F src/table.c eed2098c9b577aa17f8abe89313a9c4413f57d63
|
F src/table.c eed2098c9b577aa17f8abe89313a9c4413f57d63
|
||||||
F src/tclsqlite.c 9f2c00a92338c51171ded8943bd42d77f7e69e64
|
F src/tclsqlite.c 9f2c00a92338c51171ded8943bd42d77f7e69e64
|
||||||
@@ -50,14 +50,14 @@ F src/test2.c 03f05e984c8e2f2badc44644d42baf72b249096b
|
|||||||
F src/test3.c c12ea7f1c3fbbd58904e81e6cb10ad424e6fc728
|
F src/test3.c c12ea7f1c3fbbd58904e81e6cb10ad424e6fc728
|
||||||
F src/threadtest.c d641a5219e718e18a1a80a50eb9bb549f451f42e
|
F src/threadtest.c d641a5219e718e18a1a80a50eb9bb549f451f42e
|
||||||
F src/tokenize.c 7ac1c33e0149647c9eb5959c48992df6906d4809
|
F src/tokenize.c 7ac1c33e0149647c9eb5959c48992df6906d4809
|
||||||
F src/trigger.c cb72a3374b21ed00a6dbd3c2c5aa27a7fa72625f
|
F src/trigger.c da142decd2808bc39e801f3bb1f161dbc2bd4005
|
||||||
F src/update.c f06afa9bf1f777d17702e0f6e33cf44c44bc4f75
|
F src/update.c f06afa9bf1f777d17702e0f6e33cf44c44bc4f75
|
||||||
F src/util.c e23f8ffc654923e18f8db2d8e0de97c166fca20f
|
F src/util.c e23f8ffc654923e18f8db2d8e0de97c166fca20f
|
||||||
F src/vdbe.c e103bd5a154b1790dd344662dceb14566a51a879
|
F src/vdbe.c e103bd5a154b1790dd344662dceb14566a51a879
|
||||||
F src/vdbe.h 754eba497cfe0c3e352b9c101ab2f811f10d0a55
|
F src/vdbe.h 754eba497cfe0c3e352b9c101ab2f811f10d0a55
|
||||||
F src/where.c 5bf7f1e1d756ab3d25a18b24bb42106cb8e14d18
|
F src/where.c 5bf7f1e1d756ab3d25a18b24bb42106cb8e14d18
|
||||||
F test/all.test 873d30e25a41b3aa48fec5633a7ec1816e107029
|
F test/all.test 873d30e25a41b3aa48fec5633a7ec1816e107029
|
||||||
F test/auth.test c0b3210b109f9cdde2a19c7af603a3f6c763dcf8
|
F test/auth.test 30149de6b78099ba06429fb7d6cc4dfcc1f4985c
|
||||||
F test/bigfile.test 1cd8256d4619c39bea48147d344f348823e78678
|
F test/bigfile.test 1cd8256d4619c39bea48147d344f348823e78678
|
||||||
F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578
|
F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578
|
||||||
F test/btree.test 10e75aec120ecefc0edc4c912a0980a43db1b6c2
|
F test/btree.test 10e75aec120ecefc0edc4c912a0980a43db1b6c2
|
||||||
@@ -154,7 +154,7 @@ F www/speed.tcl a20a792738475b68756ea7a19321600f23d1d803
|
|||||||
F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098
|
F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098
|
||||||
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
|
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
|
||||||
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
|
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
|
||||||
P 45de93f913a18026a45de6254963dbcd1b0f1a19
|
P 7ea46e706485cc159f9d1c7e69efcdd048a0bb12
|
||||||
R 654c653343e049aa49525a5a6b2d7926
|
R 8cc1847ed9c1943d64f094cc16cdac01
|
||||||
U drh
|
U drh
|
||||||
Z 1fd43382d8c6399496ef6b31baa93763
|
Z a2b19b177fc9f731ee24f39a7d702049
|
||||||
|
@@ -1 +1 @@
|
|||||||
7ea46e706485cc159f9d1c7e69efcdd048a0bb12
|
cc2ae781ac186f9ee1afacdc9117087421955369
|
18
src/build.c
18
src/build.c
@@ -25,7 +25,7 @@
|
|||||||
** ROLLBACK
|
** ROLLBACK
|
||||||
** PRAGMA
|
** PRAGMA
|
||||||
**
|
**
|
||||||
** $Id: build.c,v 1.121 2003/01/13 23:27:32 drh Exp $
|
** $Id: build.c,v 1.122 2003/01/14 02:49:27 drh Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@@ -333,6 +333,7 @@ void sqliteStartTable(
|
|||||||
if( zName==0 ) return;
|
if( zName==0 ) return;
|
||||||
#ifndef SQLITE_OMIT_AUTHORIZATION
|
#ifndef SQLITE_OMIT_AUTHORIZATION
|
||||||
if( sqliteAuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0) ){
|
if( sqliteAuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0) ){
|
||||||
|
sqliteFree(zName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@@ -351,6 +352,7 @@ void sqliteStartTable(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( sqliteAuthCheck(pParse, code, zName, 0) ){
|
if( sqliteAuthCheck(pParse, code, zName, 0) ){
|
||||||
|
sqliteFree(zName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1122,6 +1124,9 @@ void sqliteDropTable(Parse *pParse, Token *pName, int isView){
|
|||||||
if( sqliteAuthCheck(pParse, code, pTable->zName, 0) ){
|
if( sqliteAuthCheck(pParse, code, pTable->zName, 0) ){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if( sqliteAuthCheck(pParse, SQLITE_DELETE, pTable->zName, 0) ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if( pTable->readOnly ){
|
if( pTable->readOnly ){
|
||||||
@@ -1702,7 +1707,7 @@ void sqliteDropIndex(Parse *pParse, Token *pName){
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if( pTab->isTemp ) code = SQLITE_DROP_TEMP_INDEX;
|
if( pTab->isTemp ) code = SQLITE_DROP_TEMP_INDEX;
|
||||||
if( sqliteAuthCheck(pParse, code, pIndex->zName, 0) ){
|
if( sqliteAuthCheck(pParse, code, pIndex->zName, pTab->zName) ){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1896,15 +1901,19 @@ void sqliteCopy(
|
|||||||
Vdbe *v;
|
Vdbe *v;
|
||||||
int addr, end;
|
int addr, end;
|
||||||
Index *pIdx;
|
Index *pIdx;
|
||||||
|
char *zFile = 0;
|
||||||
sqlite *db = pParse->db;
|
sqlite *db = pParse->db;
|
||||||
|
|
||||||
|
|
||||||
zTab = sqliteTableNameFromToken(pTableName);
|
zTab = sqliteTableNameFromToken(pTableName);
|
||||||
if( sqlite_malloc_failed || zTab==0 ) goto copy_cleanup;
|
if( sqlite_malloc_failed || zTab==0 ) goto copy_cleanup;
|
||||||
pTab = sqliteTableNameToTable(pParse, zTab);
|
pTab = sqliteTableNameToTable(pParse, zTab);
|
||||||
sqliteFree(zTab);
|
sqliteFree(zTab);
|
||||||
if( pTab==0 ) goto copy_cleanup;
|
if( pTab==0 ) goto copy_cleanup;
|
||||||
if( sqliteAuthCheck(pParse, SQLITE_INSERT, pTab->zName, 0)
|
zFile = sqliteStrNDup(pFilename->z, pFilename->n);
|
||||||
|| sqliteAuthCheck(pParse, SQLITE_COPY, pTab->zName, 0) ){
|
sqliteDequote(zFile);
|
||||||
|
if( sqliteAuthCheck(pParse, SQLITE_INSERT, pTab->zName, zFile)
|
||||||
|
|| sqliteAuthCheck(pParse, SQLITE_COPY, pTab->zName, zFile) ){
|
||||||
goto copy_cleanup;
|
goto copy_cleanup;
|
||||||
}
|
}
|
||||||
v = sqliteGetVdbe(pParse);
|
v = sqliteGetVdbe(pParse);
|
||||||
@@ -1964,6 +1973,7 @@ void sqliteCopy(
|
|||||||
}
|
}
|
||||||
|
|
||||||
copy_cleanup:
|
copy_cleanup:
|
||||||
|
sqliteFree(zFile);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
** This file contains routines used for analyzing expressions and
|
** This file contains routines used for analyzing expressions and
|
||||||
** for generating VDBE code that evaluates expressions in SQLite.
|
** for generating VDBE code that evaluates expressions in SQLite.
|
||||||
**
|
**
|
||||||
** $Id: expr.c,v 1.84 2003/01/12 18:02:18 drh Exp $
|
** $Id: expr.c,v 1.85 2003/01/14 02:49:28 drh Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@@ -430,7 +430,6 @@ int sqliteExprResolveIds(
|
|||||||
case TK_ID: {
|
case TK_ID: {
|
||||||
int cnt = 0; /* Number of matches */
|
int cnt = 0; /* Number of matches */
|
||||||
int i; /* Loop counter */
|
int i; /* Loop counter */
|
||||||
int rc; /* Return code */
|
|
||||||
char *z;
|
char *z;
|
||||||
assert( pExpr->token.z );
|
assert( pExpr->token.z );
|
||||||
z = sqliteStrNDup(pExpr->token.z, pExpr->token.n);
|
z = sqliteStrNDup(pExpr->token.z, pExpr->token.n);
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
** This header file defines the interface that the SQLite library
|
** This header file defines the interface that the SQLite library
|
||||||
** presents to client programs.
|
** presents to client programs.
|
||||||
**
|
**
|
||||||
** @(#) $Id: sqlite.h.in,v 1.37 2003/01/13 23:27:33 drh Exp $
|
** @(#) $Id: sqlite.h.in,v 1.38 2003/01/14 02:49:28 drh Exp $
|
||||||
*/
|
*/
|
||||||
#ifndef _SQLITE_H_
|
#ifndef _SQLITE_H_
|
||||||
#define _SQLITE_H_
|
#define _SQLITE_H_
|
||||||
@@ -521,23 +521,23 @@ int sqlite_set_authorizer(
|
|||||||
**
|
**
|
||||||
** Arg-3 Arg-4
|
** Arg-3 Arg-4
|
||||||
*/
|
*/
|
||||||
#define SQLITE_COPY 0 /* Table Name NULL */
|
#define SQLITE_COPY 0 /* Table Name File Name */
|
||||||
#define SQLITE_CREATE_INDEX 1 /* Index Name Table Name */
|
#define SQLITE_CREATE_INDEX 1 /* Index Name Table Name */
|
||||||
#define SQLITE_CREATE_TABLE 2 /* Table Name NULL */
|
#define SQLITE_CREATE_TABLE 2 /* Table Name NULL */
|
||||||
#define SQLITE_CREATE_TEMP_INDEX 3 /* Index Name Table Name */
|
#define SQLITE_CREATE_TEMP_INDEX 3 /* Index Name Table Name */
|
||||||
#define SQLITE_CREATE_TEMP_TABLE 4 /* Table Name NULL */
|
#define SQLITE_CREATE_TEMP_TABLE 4 /* Table Name NULL */
|
||||||
#define SQLITE_CREATE_TEMP_TRIGGER 5 /* Trigger Name NULL */
|
#define SQLITE_CREATE_TEMP_TRIGGER 5 /* Trigger Name Table Name */
|
||||||
#define SQLITE_CREATE_TEMP_VIEW 6 /* View Name NULL */
|
#define SQLITE_CREATE_TEMP_VIEW 6 /* View Name NULL */
|
||||||
#define SQLITE_CREATE_TRIGGER 7 /* Trigger Name NULL */
|
#define SQLITE_CREATE_TRIGGER 7 /* Trigger Name Table Name */
|
||||||
#define SQLITE_CREATE_VIEW 8 /* View Name NULL */
|
#define SQLITE_CREATE_VIEW 8 /* View Name NULL */
|
||||||
#define SQLITE_DELETE 9 /* Table Name NULL */
|
#define SQLITE_DELETE 9 /* Table Name NULL */
|
||||||
#define SQLITE_DROP_INDEX 10 /* Index Name NULL */
|
#define SQLITE_DROP_INDEX 10 /* Index Name Table Name */
|
||||||
#define SQLITE_DROP_TABLE 11 /* Table Name NULL */
|
#define SQLITE_DROP_TABLE 11 /* Table Name NULL */
|
||||||
#define SQLITE_DROP_TEMP_INDEX 12 /* Index Name NULL */
|
#define SQLITE_DROP_TEMP_INDEX 12 /* Index Name Table Name */
|
||||||
#define SQLITE_DROP_TEMP_TABLE 13 /* Table Name NULL */
|
#define SQLITE_DROP_TEMP_TABLE 13 /* Table Name NULL */
|
||||||
#define SQLITE_DROP_TEMP_TRIGGER 14 /* Trigger Name NULL */
|
#define SQLITE_DROP_TEMP_TRIGGER 14 /* Trigger Name Table Name */
|
||||||
#define SQLITE_DROP_TEMP_VIEW 15 /* View Name NULL */
|
#define SQLITE_DROP_TEMP_VIEW 15 /* View Name NULL */
|
||||||
#define SQLITE_DROP_TRIGGER 16 /* Trigger Name NULL */
|
#define SQLITE_DROP_TRIGGER 16 /* Trigger Name Table Name */
|
||||||
#define SQLITE_DROP_VIEW 17 /* View Name NULL */
|
#define SQLITE_DROP_VIEW 17 /* View Name NULL */
|
||||||
#define SQLITE_INSERT 18 /* Table Name NULL */
|
#define SQLITE_INSERT 18 /* Table Name NULL */
|
||||||
#define SQLITE_PRAGMA 19 /* Pragma Name 1st arg or NULL */
|
#define SQLITE_PRAGMA 19 /* Pragma Name 1st arg or NULL */
|
||||||
|
@@ -106,6 +106,9 @@ void sqliteCreateTrigger(
|
|||||||
if( sqliteAuthCheck(pParse, code, zName, tab->zName) ){
|
if( sqliteAuthCheck(pParse, code, zName, tab->zName) ){
|
||||||
goto trigger_cleanup;
|
goto trigger_cleanup;
|
||||||
}
|
}
|
||||||
|
if( sqliteAuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(tab->isTemp), 0)){
|
||||||
|
goto trigger_cleanup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
1385
test/auth.test
1385
test/auth.test
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user