From: Scott MacVicar Date: Tue, 17 Mar 2009 02:42:41 +0000 (+0000) Subject: Fix bug #47678 - Allow loadExtension to be disabled in SQLite3 X-Git-Tag: php-5.4.0alpha1~191^2~4133 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=719ba687c029e3e0a0747ecab502d7ee7c6d0a73;p=php Fix bug #47678 - Allow loadExtension to be disabled in SQLite3 --- diff --git a/ext/sqlite3/config0.m4 b/ext/sqlite3/config0.m4 index 006d536f06..8b3623d6b0 100644 --- a/ext/sqlite3/config0.m4 +++ b/ext/sqlite3/config0.m4 @@ -51,6 +51,10 @@ if test $PHP_SQLITE3 != "no"; then AC_DEFINE(HAVE_SQLITE3_KEY, 1, [have commercial sqlite3 with crypto support]) ]) + PHP_CHECK_LIBRARY(sqlite3,sqlite3_load_extension,[ + AC_DEFINE(SQLITE_OMIT_LOAD_EXTENSION, 1, [have sqlite3 with extension support]) + ]) + else AC_MSG_CHECKING([bundled sqlite3 library]) AC_MSG_RESULT([yes]) diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c index da409a655d..fb3b7f0986 100644 --- a/ext/sqlite3/sqlite3.c +++ b/ext/sqlite3/sqlite3.c @@ -281,6 +281,7 @@ PHP_METHOD(sqlite3, lastErrorMsg) } /* }}} */ +#ifndef SQLITE_OMIT_LOAD_EXTENSION /* {{{ proto bool SQLite3::loadExtension(String Shared Library) Attempts to load an SQLite extension library */ PHP_METHOD(sqlite3, loadExtension) @@ -343,6 +344,7 @@ PHP_METHOD(sqlite3, loadExtension) RETURN_TRUE; } /* }}} */ +#endif /* {{{ proto int SQLite3::changes() U Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement. */ @@ -1636,9 +1638,11 @@ ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_open, 0) ZEND_ARG_INFO(0, encryption_key) ZEND_END_ARG_INFO() +#ifndef SQLITE_OMIT_LOAD_EXTENSION ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_loadextension, 0) ZEND_ARG_INFO(0, shared_library) ZEND_END_ARG_INFO() +#endif ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_escapestring, 0, 0, 1) ZEND_ARG_INFO(0, value) @@ -1717,7 +1721,9 @@ static zend_function_entry php_sqlite3_class_methods[] = { PHP_ME(sqlite3, lastInsertRowID, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) PHP_ME(sqlite3, lastErrorCode, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) PHP_ME(sqlite3, lastErrorMsg, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) +#ifndef SQLITE_OMIT_LOAD_EXTENSION PHP_ME(sqlite3, loadExtension, arginfo_sqlite3_loadextension, ZEND_ACC_PUBLIC) +#endif PHP_ME(sqlite3, changes, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) PHP_ME(sqlite3, escapeString, arginfo_sqlite3_escapestring, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) PHP_ME(sqlite3, prepare, arginfo_sqlite3_query, ZEND_ACC_PUBLIC) diff --git a/ext/sqlite3/tests/sqlite3_22_loadextension.phpt b/ext/sqlite3/tests/sqlite3_22_loadextension.phpt index 8020921a42..091dcd4a59 100644 --- a/ext/sqlite3/tests/sqlite3_22_loadextension.phpt +++ b/ext/sqlite3/tests/sqlite3_22_loadextension.phpt @@ -1,7 +1,13 @@ --TEST-- SQLite3 load extension --SKIPIF-- - +hasMethod("loadExtension")) { + die("skip - sqlite3 doesn't have loadExtension enabled"); +} +?> --INI-- open_basedir=. sqlite3.extension_dir=.