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) {