summaryrefslogtreecommitdiffstats
path: root/php85.patch
blob: 96f8d63bb60ee45d69aa3ddb440e50ebb9419cfd (plain)
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`}}";