BUG/MINOR: spoe: Don't compare engine name and SPOE scope when both are NULL
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 19 Sep 2017 08:35:35 +0000 (10:35 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 31 Oct 2017 10:36:12 +0000 (11:36 +0100)
SPOE filter can be declared without engine name. This is an optional
parameter. But in this case, no scope must be used in the SPOE configuration
file. So engine name and scope are both undefined, and, obviously, we must not
try to compare them.

This patch must be backported in 1.7.

src/flt_spoe.c

index 228770c..abaded1 100644 (file)
@@ -2967,7 +2967,7 @@ cfg_parse_spoe_agent(const char *file, int linenum, char **args, int kwm)
 
        if ((cfg_scope == NULL && curengine != NULL) ||
            (cfg_scope != NULL && curengine == NULL) ||
-           strcmp(curengine, cfg_scope))
+           (curengine != NULL && cfg_scope != NULL && strcmp(curengine, cfg_scope)))
                goto out;
 
        if (!strcmp(args[0], "spoe-agent")) { /* new spoe-agent section */
@@ -3274,7 +3274,7 @@ cfg_parse_spoe_message(const char *file, int linenum, char **args, int kwm)
 
        if ((cfg_scope == NULL && curengine != NULL) ||
            (cfg_scope != NULL && curengine == NULL) ||
-           strcmp(curengine, cfg_scope))
+           (curengine != NULL && cfg_scope != NULL && strcmp(curengine, cfg_scope)))
                goto out;
 
        if (!strcmp(args[0], "spoe-message")) { /* new spoe-message section */