There is no need to use void * for clt_descreq and clt_descresp. The only thing these point to are struct http_descriptor. So make them struct http_descriptor pointers. This kills a typecast in server_fcgi.c.
-- :wq Claudio Index: httpd.h =================================================================== RCS file: /cvs/src/usr.sbin/httpd/httpd.h,v retrieving revision 1.160 diff -u -p -r1.160 httpd.h --- httpd.h 2 Mar 2022 11:10:43 -0000 1.160 +++ httpd.h 15 Aug 2022 10:34:29 -0000 @@ -332,8 +332,8 @@ struct client { struct bufferevent *clt_bev; struct evbuffer *clt_output; struct event clt_ev; - void *clt_descreq; - void *clt_descresp; + struct http_descriptor *clt_descreq; + struct http_descriptor *clt_descresp; int clt_sndbufsiz; uint64_t clt_boundary; Index: server_fcgi.c =================================================================== RCS file: /cvs/src/usr.sbin/httpd/server_fcgi.c,v retrieving revision 1.94 diff -u -p -r1.94 server_fcgi.c --- server_fcgi.c 15 Aug 2022 10:29:03 -0000 1.94 +++ server_fcgi.c 15 Aug 2022 10:34:29 -0000 @@ -581,8 +581,7 @@ server_fcgi_read(struct bufferevent *bev } /* Don't send content for HEAD requests */ if (clt->clt_fcgi.headerssent && - ((struct http_descriptor *) - clt->clt_descreq)->http_method + clt->clt_descreq->http_method == HTTP_METHOD_HEAD) /* nothing */ ; else if (server_fcgi_writechunk(clt) == -1) {