Merge branch 'PHP-8.1' into PHP-8.2

This commit is contained in:
Jakub Zelenka 2022-11-23 11:36:24 +00:00
commit 642fcdb781
No known key found for this signature in database
GPG key ID: 1C0779DC5C0A9DE4
4 changed files with 12 additions and 6 deletions

2
NEWS
View file

@ -17,6 +17,8 @@ PHP NEWS
. Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING).
(Jakub Zelenka)
. Fixed bug #80669 (FPM numeric user fails to set groups). (Jakub Zelenka)
. Fixed bug GH-8517 (Random crash of FPM master process in
fpm_stdio_child_said). (Jakub Zelenka)
- MBString:
. Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in

View file

@ -120,7 +120,7 @@ static void fpm_child_unlink(struct fpm_child_s *child) /* {{{ */
}
/* }}} */
static struct fpm_child_s *fpm_child_find(pid_t pid) /* {{{ */
struct fpm_child_s *fpm_child_find(pid_t pid) /* {{{ */
{
struct fpm_worker_pool_s *wp;
struct fpm_child_s *child = 0;

View file

@ -10,13 +10,14 @@
#include "fpm_events.h"
#include "zlog.h"
struct fpm_child_s;
int fpm_children_create_initial(struct fpm_worker_pool_s *wp);
int fpm_children_free(struct fpm_child_s *child);
void fpm_children_bury(void);
int fpm_children_init_main(void);
int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop, int nb_to_spawn, int is_debug);
struct fpm_child_s;
struct fpm_child_s *fpm_child_find(pid_t pid);
struct fpm_child_s {
struct fpm_child_s *prev, *next;

View file

@ -181,7 +181,10 @@ static void fpm_stdio_child_said(struct fpm_event_s *ev, short which, void *arg)
if (!arg) {
return;
}
child = (struct fpm_child_s *)arg;
child = fpm_child_find((intptr_t) arg);
if (!child) {
return;
}
is_stdout = (fd == child->fd_stdout);
if (is_stdout) {
@ -327,10 +330,10 @@ int fpm_stdio_parent_use_pipes(struct fpm_child_s *child) /* {{{ */
child->fd_stdout = fd_stdout[0];
child->fd_stderr = fd_stderr[0];
fpm_event_set(&child->ev_stdout, child->fd_stdout, FPM_EV_READ, fpm_stdio_child_said, child);
fpm_event_set(&child->ev_stdout, child->fd_stdout, FPM_EV_READ, fpm_stdio_child_said, (void *) (intptr_t) child->pid);
fpm_event_add(&child->ev_stdout, 0);
fpm_event_set(&child->ev_stderr, child->fd_stderr, FPM_EV_READ, fpm_stdio_child_said, child);
fpm_event_set(&child->ev_stderr, child->fd_stderr, FPM_EV_READ, fpm_stdio_child_said, (void *) (intptr_t) child->pid);
fpm_event_add(&child->ev_stderr, 0);
return 0;
}