mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
The ability to load extensions is turned off by default. It must be
enabled by calling sqlite3_enable_load_extension() before it will work. This prevents security problems in legacy applications. Ticket #1863. (CVS 3311) FossilOrigin-Name: 4692319ccf28b0ebe64d5c5d189f444034fe0cb2
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
# This file implements regression tests for SQLite library. The
|
||||
# focus of this script is in-memory database backend.
|
||||
#
|
||||
# $Id: loadext.test,v 1.4 2006/06/26 21:35:46 drh Exp $
|
||||
# $Id: loadext.test,v 1.5 2006/06/27 15:16:16 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@ -50,6 +50,7 @@ do_test loadext-1.1 {
|
||||
}
|
||||
} {1 {no such function: half}}
|
||||
do_test loadext-1.2 {
|
||||
sqlite3_enable_load_extension db 1
|
||||
sqlite3_load_extension db $testextension testloadext_init
|
||||
catchsql {
|
||||
SELECT half(1.0);
|
||||
@ -60,6 +61,7 @@ do_test loadext-1.2 {
|
||||
#
|
||||
do_test loadext-1.3 {
|
||||
sqlite3 db2 test.db
|
||||
sqlite3_enable_load_extension db2 1
|
||||
catchsql {
|
||||
SELECT half(1.0);
|
||||
} db2
|
||||
@ -83,6 +85,7 @@ do_test loadext-1.5 {
|
||||
|
||||
db2 close
|
||||
sqlite3 db test.db
|
||||
sqlite3_enable_load_extension db 1
|
||||
|
||||
# Try to load an extension for which the file does not exist.
|
||||
#
|
||||
@ -136,6 +139,7 @@ do_test loadext-2.4 {
|
||||
|
||||
db close
|
||||
sqlite3 db test.db
|
||||
sqlite3_enable_load_extension db 1
|
||||
do_test loadext-3.1 {
|
||||
catchsql {
|
||||
SELECT half(5);
|
||||
@ -158,4 +162,31 @@ do_test loadext-3.4 {
|
||||
}
|
||||
} {0 2.5}
|
||||
|
||||
# Ticket #1863
|
||||
# Make sure the extension loading mechanism will not work unless it
|
||||
# is explicitly enabled.
|
||||
#
|
||||
db close
|
||||
sqlite3 db test.db
|
||||
do_test loadext-4.1 {
|
||||
catchsql {
|
||||
SELECT load_extension($::testextension,'testloadext_init')
|
||||
}
|
||||
} {1 {not authorized}}
|
||||
do_test loadext-4.2 {
|
||||
sqlite3_enable_load_extension db 1
|
||||
catchsql {
|
||||
SELECT load_extension($::testextension,'testloadext_init')
|
||||
}
|
||||
} {0 {{}}}
|
||||
|
||||
do_test loadext-4.3 {
|
||||
sqlite3_enable_load_extension db 0
|
||||
catchsql {
|
||||
SELECT load_extension($::testextension,'testloadext_init')
|
||||
}
|
||||
} {1 {not authorized}}
|
||||
|
||||
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user