summaryrefslogtreecommitdiffstats
path: root/uwsgi_fix_php83.patch
blob: ed343a9ae695a6aa8a5cf8dff13caf65b3011436 (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
From 064984116e86ac0a5d5d3805765395b661fc4455 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Mon, 4 Sep 2023 13:10:52 +0200
Subject: [PATCH] ini_entries is read-only PHP 8.3

---
 plugins/php/php_plugin.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/plugins/php/php_plugin.c b/plugins/php/php_plugin.c
index b3efa006a..d9b615bac 100644
--- a/plugins/php/php_plugin.c
+++ b/plugins/php/php_plugin.c
@@ -27,6 +27,7 @@ struct uwsgi_php {
 	char *fallback;
 	char *fallback2;
 	char *fallback_qs;
+	char *ini_entries;
 	size_t ini_size;
 	int dump_config;
 	char *server_software;
@@ -232,21 +233,22 @@ static sapi_module_struct uwsgi_sapi_module;
 
 void uwsgi_php_append_config(char *filename) {
 	size_t file_size = 0;
-        char *file_content = uwsgi_open_and_read(filename, &file_size, 1, NULL);
-	uwsgi_sapi_module.ini_entries = realloc(uwsgi_sapi_module.ini_entries, uphp.ini_size + file_size);
-	memcpy(uwsgi_sapi_module.ini_entries + uphp.ini_size, file_content, file_size);
+	char *file_content = uwsgi_open_and_read(filename, &file_size, 1, NULL);
+	uphp.ini_entries = realloc(uphp.ini_entries, uphp.ini_size + file_size);
+	memcpy(uphp.ini_entries + uphp.ini_size, file_content, file_size);
 	uphp.ini_size += file_size-1;
 	free(file_content);
+	uwsgi_sapi_module.ini_entries = uphp.ini_entries;
 }
 
 void uwsgi_php_set(char *opt) {
 
-	uwsgi_sapi_module.ini_entries = realloc(uwsgi_sapi_module.ini_entries, uphp.ini_size + strlen(opt)+2);
-	memcpy(uwsgi_sapi_module.ini_entries + uphp.ini_size, opt, strlen(opt));
-
+	uphp.ini_entries = realloc(uphp.ini_entries, uphp.ini_size + strlen(opt)+2);
+	memcpy(uphp.ini_entries + uphp.ini_size, opt, strlen(opt));
 	uphp.ini_size += strlen(opt)+1;
-	uwsgi_sapi_module.ini_entries[uphp.ini_size-1] = '\n';
-	uwsgi_sapi_module.ini_entries[uphp.ini_size] = 0;
+	uphp.ini_entries[uphp.ini_size-1] = '\n';
+	uphp.ini_entries[uphp.ini_size] = 0;
+	uwsgi_sapi_module.ini_entries = uphp.ini_entries;
 }
 
 extern ps_module ps_mod_uwsgi;