]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: config: .if/.elif should also accept negative integers
authorWilly Tarreau <w@1wt.eu>
Thu, 6 May 2021 05:52:50 +0000 (07:52 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 6 May 2021 08:35:03 +0000 (10:35 +0200)
The doc about .if/.elif config block conditions says:

  a non-nul integer (e.g. '1'), always returns "true"

So we must accept negative integers as well. The test was made on
atoi() > 0.

No backport is needed, this is only 2.4.

src/cfgparse.c

index b6145fc8a57755e42a1fab7634856455056c3e67..0048a12cbb13277b4e464c944399bb64be030f91 100644 (file)
@@ -1865,7 +1865,7 @@ next_line:
                                } else if (!*args[1] || *args[1] == '0') {
                                        /* empty = false */
                                        nested_conds[nested_cond_lvl] = NESTED_COND_IF_DROP;
-                               } else if (atoi(args[1]) > 0) {
+                               } else if (atoi(args[1]) != 0) {
                                        /* true */
                                        nested_conds[nested_cond_lvl] = NESTED_COND_IF_TAKE;
                                } else {
@@ -1897,7 +1897,7 @@ next_line:
                                } else if (!*args[1] || *args[1] == '0') {
                                        /* empty = false */
                                        nested_conds[nested_cond_lvl] = NESTED_COND_ELIF_DROP;
-                               } else if (atoi(args[1]) > 0) {
+                               } else if (atoi(args[1]) != 0) {
                                        /* true */
                                        nested_conds[nested_cond_lvl] = NESTED_COND_ELIF_TAKE;
                                } else {