parent
6ec0ff3596
commit
2821b3347c
4 changed files with 40 additions and 10 deletions
|
@ -88,6 +88,9 @@ static void nxt_php_set_options(nxt_task_t *task, nxt_conf_value_t *options,
|
|||
int type);
|
||||
static nxt_int_t nxt_php_alter_option(nxt_str_t *name, nxt_str_t *value,
|
||||
int type);
|
||||
#ifdef NXT_PHP8
|
||||
static void nxt_php_disable_functions(nxt_str_t *str);
|
||||
#endif
|
||||
static void nxt_php_disable(nxt_task_t *task, const char *type,
|
||||
nxt_str_t *value, char **ptr, nxt_php_disable_t disable);
|
||||
|
||||
|
@ -589,9 +592,13 @@ nxt_php_set_options(nxt_task_t *task, nxt_conf_value_t *options, int type)
|
|||
}
|
||||
|
||||
if (nxt_str_eq(&name, "disable_functions", 17)) {
|
||||
#ifdef NXT_PHP8
|
||||
nxt_php_disable_functions(&value);
|
||||
#else
|
||||
nxt_php_disable(task, "function", &value,
|
||||
&PG(disable_functions),
|
||||
zend_disable_function);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -680,6 +687,29 @@ nxt_php_alter_option(nxt_str_t *name, nxt_str_t *value, int type)
|
|||
#endif
|
||||
|
||||
|
||||
#ifdef NXT_PHP8
|
||||
|
||||
static void
|
||||
nxt_php_disable_functions(nxt_str_t *str)
|
||||
{
|
||||
char *p;
|
||||
|
||||
p = nxt_malloc(str->length + 1);
|
||||
if (nxt_slow_path(p == NULL)) {
|
||||
return;
|
||||
}
|
||||
|
||||
nxt_memcpy(p, str->start, str->length);
|
||||
p[str->length] = '\0';
|
||||
|
||||
zend_disable_functions(p);
|
||||
|
||||
nxt_free(p);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
static void
|
||||
nxt_php_disable(nxt_task_t *task, const char *type, nxt_str_t *value,
|
||||
char **ptr, nxt_php_disable_t disable)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
header('Content-Length: 0');
|
||||
header('X-Var-1: ' . $_GET['var1']);
|
||||
header('X-Var-2: ' . $_GET['var2'] . isset($_GET['var2']));
|
||||
header('X-Var-3: ' . $_GET['var3'] . isset($_GET['var3']));
|
||||
header('X-Var-4: ' . $_GET['var4'] . isset($_GET['var4']));
|
||||
header('X-Var-2: ' . (isset($_GET['var2']) ? $_GET['var2'] : 'not set'));
|
||||
header('X-Var-3: ' . (isset($_GET['var3']) ? $_GET['var3'] : 'not set'));
|
||||
header('X-Var-4: ' . (isset($_GET['var4']) ? $_GET['var4'] : 'not set'));
|
||||
?>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
header('Content-Length: 0');
|
||||
header('X-Var-1: ' . $_POST['var1']);
|
||||
header('X-Var-2: ' . $_POST['var2'] . isset($_POST['var2']));
|
||||
header('X-Var-3: ' . $_POST['var3'] . isset($_POST['var3']));
|
||||
header('X-Var-2: ' . (isset($_POST['var2']) ? $_POST['var2'] : 'not set'));
|
||||
header('X-Var-3: ' . (isset($_POST['var3']) ? $_POST['var3'] : 'not set'));
|
||||
?>
|
||||
|
|
|
@ -198,9 +198,9 @@ class TestPHPApplication(TestApplicationPHP):
|
|||
|
||||
resp = self.get(url='/?var1=val1&var2=&var3')
|
||||
assert resp['headers']['X-Var-1'] == 'val1', 'GET variables'
|
||||
assert resp['headers']['X-Var-2'] == '1', 'GET variables 2'
|
||||
assert resp['headers']['X-Var-3'] == '1', 'GET variables 3'
|
||||
assert resp['headers']['X-Var-4'] == '', 'GET variables 4'
|
||||
assert resp['headers']['X-Var-2'] == '', 'GET variables 2'
|
||||
assert resp['headers']['X-Var-3'] == '', 'GET variables 3'
|
||||
assert resp['headers']['X-Var-4'] == 'not set', 'GET variables 4'
|
||||
|
||||
def test_php_application_post_variables(self):
|
||||
self.load('post_variables')
|
||||
|
@ -214,8 +214,8 @@ class TestPHPApplication(TestApplicationPHP):
|
|||
body='var1=val1&var2=',
|
||||
)
|
||||
assert resp['headers']['X-Var-1'] == 'val1', 'POST variables'
|
||||
assert resp['headers']['X-Var-2'] == '1', 'POST variables 2'
|
||||
assert resp['headers']['X-Var-3'] == '', 'POST variables 3'
|
||||
assert resp['headers']['X-Var-2'] == '', 'POST variables 2'
|
||||
assert resp['headers']['X-Var-3'] == 'not set', 'POST variables 3'
|
||||
|
||||
def test_php_application_cookies(self):
|
||||
self.load('cookies')
|
||||
|
|
Loading…
Reference in a new issue