summaryrefslogtreecommitdiff
path: root/ext/sqlite3/tests/sqlite3_21_security.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sqlite3/tests/sqlite3_21_security.phpt')
-rw-r--r--ext/sqlite3/tests/sqlite3_21_security.phpt39
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/sqlite3/tests/sqlite3_21_security.phpt b/ext/sqlite3/tests/sqlite3_21_security.phpt
new file mode 100644
index 0000000..7e83bb2
--- /dev/null
+++ b/ext/sqlite3/tests/sqlite3_21_security.phpt
@@ -0,0 +1,39 @@
+--TEST--
+SQLite3 open_basedir checks
+--SKIPIF--
+<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
+--INI--
+open_basedir=.
+--FILE--
+<?php
+$directory = dirname(__FILE__) . '/';
+$file = uniqid() . '.db';
+
+echo "Within test directory\n";
+$db = new SQLite3($directory . $file);
+var_dump($db);
+var_dump($db->close());
+unlink($directory . $file);
+
+echo "Above test directory\n";
+try {
+ $db = new SQLite3('../bad' . $file);
+} catch (Exception $e) {
+ echo $e . "\n";
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Within test directory
+object(SQLite3)#%d (0) {
+}
+bool(true)
+Above test directory
+
+Warning: SQLite3::__construct(): open_basedir restriction in effect. File(%s) is not within the allowed path(s): (.) in %ssqlite3_21_security.php on line %d
+exception 'Exception' with message 'open_basedir prohibits opening %s' in %ssqlite3_21_security.php:%d
+Stack trace:
+#0 %ssqlite3_21_security.php(%d): SQLite3->__construct('%s')
+#1 {main}
+Done