]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: config: fix bind line thread mask validation
authorWilly Tarreau <w@1wt.eu>
Sat, 2 Feb 2019 16:46:24 +0000 (17:46 +0100)
committerWilly Tarreau <w@1wt.eu>
Sat, 2 Feb 2019 16:46:24 +0000 (17:46 +0100)
When no nbproc is specified, a computation leads to reading bind_thread[-1]
before checking if the thread mask is valid for a bind conf. It may either
report a false warning and compute a wrong mask, or miss some incorrect
configs.

This must be backported to 1.9 and possibly 1.8.

src/cfgparse.c

index 5c292f82d2bdbc917fed4742136aa1e13056d513..40a21e784171cda8b3ce48f9154f090215750271 100644 (file)
@@ -2288,9 +2288,9 @@ int check_config_validity()
                        /* detect and address thread affinity inconsistencies */
                        nbproc = 0;
                        if (bind_conf->bind_proc)
-                               nbproc = my_ffsl(bind_conf->bind_proc);
+                               nbproc = my_ffsl(bind_conf->bind_proc) - 1;
 
-                       mask = bind_conf->bind_thread[nbproc - 1];
+                       mask = bind_conf->bind_thread[nbproc];
                        if (mask && !(mask & all_threads_mask)) {
                                unsigned long new_mask = 0;