1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
From ee5e383c6bbca94d5f93134510468b3fe87a470c Mon Sep 17 00:00:00 2001
From: jvoisin <julien.voisin@dustri.org>
Date: Sun, 31 Aug 2025 16:05:44 +0200
Subject: [PATCH] Add support for PHP8.5
---
.github/workflows/builds.yml | 1 +
src/sp_cookie_encryption.c | 23 +++++++++++++++++--
...isabled_functions_shell_exec_backtick.phpt | 1 +
...led_functions_shell_exec_backtick_var.phpt | 1 +
...ctions_shell_exec_backtick_var_string.phpt | 1 +
5 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/sp_cookie_encryption.c b/src/sp_cookie_encryption.c
index c833f943..ec5c7c2d 100644
--- a/src/sp_cookie_encryption.c
+++ b/src/sp_cookie_encryption.c
@@ -48,7 +48,11 @@ static zend_string *encrypt_data(zend_string *data) {
#if PHP_VERSION_ID >= 70300
static void php_head_parse_cookie_options_array(
zval *options, zend_long *expires, zend_string **path, zend_string **domain,
- zend_bool *secure, zend_bool *httponly, zend_string **samesite) {
+ zend_bool *secure, zend_bool *httponly, zend_string **samesite
+#if PHP_VERSION_ID >= 80500
+ ,bool *partitioned
+#endif
+ ) {
int found = 0;
zend_string *key;
zval *value;
@@ -73,6 +77,11 @@ static void php_head_parse_cookie_options_array(
} else if (zend_string_equals_literal_ci(key, "samesite")) {
*samesite = zval_get_string(value);
found++;
+#if PHP_VERSION_ID >= 80500
+ } else if (zend_string_equals_literal_ci(key, "partitioned")) {
+ *partitioned = zval_is_true(value);
+ found++;
+#endif
} else {
php_error_docref(NULL, E_WARNING,
"Unrecognized key '%s' found in the options array",
@@ -94,6 +103,9 @@ static void php_head_parse_cookie_options_array(
#endif
PHP_FUNCTION(sp_setcookie) {
+#if PHP_VERSION_ID >= 80500
+ zend_bool partitioned;
+#endif
zend_string *name = NULL, *value = NULL, *path = NULL, *domain = NULL,
*value_enc = NULL,
#if PHP_VERSION_ID < 70300
@@ -133,7 +145,11 @@ PHP_FUNCTION(sp_setcookie) {
}
php_head_parse_cookie_options_array(expires_or_options, &expires, &path,
&domain, &secure, &httponly,
+#if PHP_VERSION_ID < 80500
&samesite);
+#else
+ &samesite, &partitioned);
+#endif
} else {
expires = zval_get_long(expires_or_options);
}
@@ -194,9 +210,12 @@ PHP_FUNCTION(sp_setcookie) {
if (php_setcookie(name, (value_enc ? value_enc : value), expires,
(path_samesite ? path_samesite : path), domain, secure, 1,
httponly) == SUCCESS) {
-#else
+#elif PHP_VERSION_ID < 80500
if (php_setcookie(name, (value_enc ? value_enc : value), expires, path,
domain, secure, httponly, samesite, 1) == SUCCESS) {
+#else
+ if (php_setcookie(name, (value_enc ? value_enc : value), expires, path,
+ domain, secure, httponly, samesite, partitioned, false) == SUCCESS) {
#endif
RETVAL_TRUE;
} else {
diff --git a/src/tests/disable_function/disabled_functions_shell_exec_backtick.phpt b/src/tests/disable_function/disabled_functions_shell_exec_backtick.phpt
index aeb64c29..6f53ceae 100644
--- a/src/tests/disable_function/disabled_functions_shell_exec_backtick.phpt
+++ b/src/tests/disable_function/disabled_functions_shell_exec_backtick.phpt
@@ -4,6 +4,7 @@ Disable functions - shell_exec via backtick operator
<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
--INI--
sp.configuration_file={PWD}/config/disabled_functions_extra.ini
+error_reporting = E_ALL & ~E_DEPRECATED
--FILE--
<?php
echo `ls`;
diff --git a/src/tests/disable_function/disabled_functions_shell_exec_backtick_var.phpt b/src/tests/disable_function/disabled_functions_shell_exec_backtick_var.phpt
index a312acfb..6ea5865d 100644
--- a/src/tests/disable_function/disabled_functions_shell_exec_backtick_var.phpt
+++ b/src/tests/disable_function/disabled_functions_shell_exec_backtick_var.phpt
@@ -4,6 +4,7 @@ Disable functions - shell_exec via backtick operator in context of a var name
<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
--INI--
sp.configuration_file={PWD}/config/disabled_functions_extra.ini
+error_reporting = E_ALL & ~E_DEPRECATED
--FILE--
<?php
echo ${`ls`};
diff --git a/src/tests/disable_function/disabled_functions_shell_exec_backtick_var_string.phpt b/src/tests/disable_function/disabled_functions_shell_exec_backtick_var_string.phpt
index ea77a7dd..f1175680 100644
--- a/src/tests/disable_function/disabled_functions_shell_exec_backtick_var_string.phpt
+++ b/src/tests/disable_function/disabled_functions_shell_exec_backtick_var_string.phpt
@@ -4,6 +4,7 @@ Disable functions - shell_exec via backtick operator in context of a var name in
<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
--INI--
sp.configuration_file={PWD}/config/disabled_functions_extra.ini
+error_reporting = E_ALL & ~E_DEPRECATED
--FILE--
<?php
echo "{${`ls`}}";
|