Skip to content

Commit

Permalink
MFH
Browse files Browse the repository at this point in the history
- Changed dl() to be disabled by default. Enabled only when explicitly
  registered by the SAPI layer. Enabled only with CLI, CGI and EMBED. (Dmitry)
[DOC]
  • Loading branch information
helly25 committed Dec 31, 2008
1 parent 2faea53 commit f77719d
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 3 deletions.
2 changes: 2 additions & 0 deletions NEWS
Expand Up @@ -6,6 +6,8 @@ PHP NEWS
- Deprecated session_register(), session_unregister() and
session_is_registered(). (Hannes)

- Changed dl() to be disabled by default. Enabled only when explicitly
registered by the SAPI layer. Enabled only with CLI, CGI and EMBED. (Dmitry)
- Changed opendir(), dir() and scandir() to use default context when no context
argument is passed. (Sara)
- Changed open_basedir to allow tightening in runtime contexts. (Sara)
Expand Down
3 changes: 0 additions & 3 deletions ext/standard/basic_functions.c
Expand Up @@ -3025,9 +3025,6 @@ const zend_function_entry basic_functions[] = { /* {{{ */
PHP_FE(is_scalar, arginfo_is_scalar)
PHP_FE(is_callable, arginfo_is_callable)

/* functions from dl.c */
PHP_FE(dl, arginfo_dl)

/* functions from file.c */
PHP_FE(pclose, arginfo_pclose)
PHP_FE(popen, arginfo_popen)
Expand Down
1 change: 1 addition & 0 deletions main/SAPI.h
Expand Up @@ -264,6 +264,7 @@ struct _sapi_module_struct {
int phpinfo_as_text;

char *ini_entries;
const zend_function_entry *additional_functions;
};


Expand Down
9 changes: 9 additions & 0 deletions main/main.c
Expand Up @@ -1910,6 +1910,15 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
/* start Zend extensions */
zend_startup_extensions();

/* register additional functions */
if (sapi_module.additional_functions) {
if (zend_hash_find(&module_registry, "standard", sizeof("standard"), (void**)&module)==SUCCESS) {
EG(current_module) = module;
zend_register_functions(NULL, sapi_module.additional_functions, NULL, MODULE_PERSISTENT TSRMLS_CC);
EG(current_module) = NULL;
}
}

/* make core report what it should */
if (zend_hash_find(&module_registry, "core", sizeof("core"), (void**)&module)==SUCCESS) {
module->version = PHP_VERSION;
Expand Down
12 changes: 12 additions & 0 deletions sapi/cgi/cgi_main.c
Expand Up @@ -850,6 +850,17 @@ static sapi_module_struct cgi_sapi_module = {
};
/* }}} */

/* {{{ arginfo ext/standard/dl.c */
ZEND_BEGIN_ARG_INFO(arginfo_dl, 0)
ZEND_ARG_INFO(0, extension_filename)
ZEND_END_ARG_INFO()
/* }}} */

static const zend_function_entry additional_functions[] = {
ZEND_FE(dl, arginfo_dl)
{NULL, NULL, NULL}
};

/* {{{ php_cgi_usage
*/
static void php_cgi_usage(char *argv0)
Expand Down Expand Up @@ -1534,6 +1545,7 @@ int main(int argc, char *argv[])
#endif

cgi_sapi_module.executable_location = argv[0];
cgi_sapi_module.additional_functions = additional_functions;

/* startup after we get the above ini override se we get things right */
if (cgi_sapi_module.startup(&cgi_sapi_module) == FAILURE) {
Expand Down
12 changes: 12 additions & 0 deletions sapi/cli/php_cli.c
Expand Up @@ -426,6 +426,17 @@ static sapi_module_struct cli_sapi_module = {
};
/* }}} */

/* {{{ arginfo ext/standard/dl.c */
ZEND_BEGIN_ARG_INFO(arginfo_dl, 0)
ZEND_ARG_INFO(0, extension_filename)
ZEND_END_ARG_INFO()
/* }}} */

static const zend_function_entry additional_functions[] = {
ZEND_FE(dl, arginfo_dl)
{NULL, NULL, NULL}
};

/* {{{ php_cli_usage
*/
static void php_cli_usage(char *argv0)
Expand Down Expand Up @@ -704,6 +715,7 @@ int main(int argc, char *argv[])
php_optarg = orig_optarg;

cli_sapi_module.executable_location = argv[0];
cli_sapi_module.additional_functions = additional_functions;

/* startup after we get the above ini override se we get things right */
if (cli_sapi_module.startup(&cli_sapi_module)==FAILURE) {
Expand Down
13 changes: 13 additions & 0 deletions sapi/embed/php_embed.c
Expand Up @@ -140,6 +140,17 @@ sapi_module_struct php_embed_module = {
};
/* }}} */

/* {{{ arginfo ext/standard/dl.c */
ZEND_BEGIN_ARG_INFO(arginfo_dl, 0)
ZEND_ARG_INFO(0, extension_filename)
ZEND_END_ARG_INFO()
/* }}} */

static const zend_function_entry additional_functions[] = {
ZEND_FE(dl, arginfo_dl)
{NULL, NULL, NULL}
};

int php_embed_init(int argc, char **argv PTSRMLS_DC)
{
zend_llist global_vars;
Expand Down Expand Up @@ -176,6 +187,8 @@ int php_embed_init(int argc, char **argv PTSRMLS_DC)
php_embed_module.ini_entries = malloc(sizeof(HARDCODED_INI));
memcpy(php_embed_module.ini_entries, HARDCODED_INI, sizeof(HARDCODED_INI));

php_embed_module.additional_functions = additional_functions;

if (argv) {
php_embed_module.executable_location = argv[0];
}
Expand Down

0 comments on commit f77719d

Please sign in to comment.