Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
httpd: remove redundant search and check return value
To:
tech@openbsd.org
Date:
Tue, 14 Jul 2026 08:07:32 +0200

Download raw body.

Thread
  • Rafael Sadowski:

    httpd: remove redundant search and check return value

OK?

commit 314f1d8872647165256696609b5a6b03878d1100
Author: Rafael Sadowski <rafael@sizeofvoid.org>
Date:   Tue Jul 14 07:56:55 2026 +0200

    httpd: remove redundant search and check return value
    
    The server foreach-loop serves the same purpose as "serverconfig_byid"
    did previously.

diff --git a/config.c b/config.c
index c2062a3..9ba772b 100644
--- a/config.c
+++ b/config.c
@@ -352,8 +352,7 @@ config_settls(struct httpd *env, struct server *srv, enum tls_config_type type,
 int
 config_getserver_fcgiparams(struct httpd *env, struct imsg *imsg)
 {
-	struct server		*srv;
-	struct server_config	*srv_conf, *iconf;
+	struct server_config	*srv_conf;
 	struct fastcgi_param	*fp;
 	uint32_t		 id;
 	size_t			 c, nc, len;
@@ -369,29 +368,19 @@ config_getserver_fcgiparams(struct httpd *env, struct imsg *imsg)
 	p += sizeof(nc);
 
 	memcpy(&id, p, sizeof(id));	/* server conf id */
-	srv_conf = serverconfig_byid(id);
 	p += sizeof(id);
 
+	if ((srv_conf = serverconfig_byid(id)) == NULL) {
+		log_debug("%s: server not found", __func__);
+		return(-1);
+	}
+
 	len += nc*sizeof(*fp);
 	if (IMSG_DATA_SIZE(imsg) < len) {
 		log_debug("%s: invalid message length", __func__);
 		return (-1);
 	}
 
-	/* Find associated server config */
-	TAILQ_FOREACH(srv, env->sc_servers, srv_entry) {
-		if (srv->srv_conf.id == id) {
-			srv_conf = &srv->srv_conf;
-			break;
-		}
-		TAILQ_FOREACH(iconf, &srv->srv_hosts, entry) {
-			if (iconf->id == id) {
-				srv_conf = iconf;
-				break;
-			}
-		}
-	}
-
 	/* Fetch FCGI parameters */
 	for (c = 0; c < nc; c++) {
 		if ((fp = calloc(1, sizeof(*fp))) == NULL)