]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: spoe: do not assume agent->rt is valid on exit
authorWilly Tarreau <w@1wt.eu>
Thu, 7 Feb 2019 13:22:52 +0000 (14:22 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 7 Feb 2019 14:08:13 +0000 (15:08 +0100)
As reported by Christopher, we may call spoe_release_agent() when leaving
after an allocation failure or a config parse error. We must not assume
agent->rt is valid there as the allocation could have failed.

This should be backported to 1.9 and 1.8.

src/flt_spoe.c

index f9a529f219e674a19e87ad9b17233263a7e1f96e..9418ff20c7532752d5991e552a7204c5e89d9077 100644 (file)
@@ -184,8 +184,10 @@ spoe_release_agent(struct spoe_agent *agent)
                LIST_DEL(&grp->list);
                spoe_release_group(grp);
        }
-       for (i = 0; i < global.nbthread; ++i)
-               HA_SPIN_DESTROY(&agent->rt[i].lock);
+       if (agent->rt) {
+               for (i = 0; i < global.nbthread; ++i)
+                       HA_SPIN_DESTROY(&agent->rt[i].lock);
+       }
        free(agent->rt);
        free(agent);
 }