]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: mux-h1: use explicit __objt_server on idle conn reinsert
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 6 Dec 2024 15:47:53 +0000 (16:47 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 6 Dec 2024 17:02:55 +0000 (18:02 +0100)
When dealing with a backend connection, H1 mux IO handler must reinsert
it in its idle list pool if it was extracted from it at the beginning.
This is the case if conn_in_list is true.

On reinsert, idle list pool is retrieved via the server instance
accessible from <conn.target>. Replace objt_server usage with
__objt_server as an idle connection is always attached to a server. This
ensures that there is no issue when using _srv_add_idle() then.

This should fix coverity report from github issue #2810.

src/mux_h1.c

index 734d0627b7937b93dfbca56617441bab460ab49c..7eb18133dd206c9faa992ddf4b9509c7886b5b7b 100644 (file)
@@ -4252,7 +4252,7 @@ struct task *h1_io_cb(struct task *t, void *ctx, unsigned int state)
                t = NULL;
 
        if (!ret && conn_in_list) {
-               struct server *srv = objt_server(conn->target);
+               struct server *srv = __objt_server(conn->target);
 
                HA_SPIN_LOCK(IDLE_CONNS_LOCK, &idle_conns[tid].idle_conns_lock);
                _srv_add_idle(srv, conn, conn_in_list == CO_FL_SAFE_LIST);