Thu, 30 Oct 2025 16:59:31 +0100
fix cgi pipe fd initialization
--- a/src/server/daemon/event_linux.c Wed Oct 29 16:51:36 2025 +0100 +++ b/src/server/daemon/event_linux.c Thu Oct 30 16:59:31 2025 +0100 @@ -63,6 +63,7 @@ log_ereport(LOG_FAILURE, "evhandler_create: epoll_create: %s", strerror(errno)); return NULL; } + log_ereport(LOG_DEBUG, "evhandler_create: epoll fd %d", handler->ep); handler->event_fd = eventfd(0, EFD_NONBLOCK); if(handler->event_fd < 0) {
--- a/src/server/daemon/sessionhandler.c Wed Oct 29 16:51:36 2025 +0100 +++ b/src/server/daemon/sessionhandler.c Thu Oct 30 16:59:31 2025 +0100 @@ -553,6 +553,9 @@ return 0; } +/* + * this function should only be used as event->finish func + */ int evt_request_error(EventHandler *h, Event *event) { EventHttpIO *io = event->cookie; HttpParser *parser = io->parser; @@ -579,7 +582,7 @@ http_parser_free(parser); free(io); - free(event); // TODO: is this safe?? + free(event); log_ereport(LOG_DEBUG, "trace reqid: %016llx free event", (unsigned long long int)reqid); return 0;
--- a/src/server/safs/cgi.c Wed Oct 29 16:51:36 2025 +0100 +++ b/src/server/safs/cgi.c Thu Oct 30 16:59:31 2025 +0100 @@ -115,9 +115,9 @@ handler->process.out[0] = -1; handler->process.out[1] = -1; handler->process.err[0] = -1; - handler->process.err[0] = -1; + handler->process.err[1] = -1; handler->process.in[0] = -1; - handler->process.in[0] = -1; + handler->process.in[1] = -1; handler->path = path; int ret = cgi_start(rq, &handler->process, path, argv, env);