]> git.proxmox.com Git - mirror_corosync.git/commitdiff
totemconfig: improve linknumber checking
authorliangxin1300 <XLiang@suse.com>
Thu, 17 Sep 2020 02:54:03 +0000 (10:54 +0800)
committerJan Friesse <jfriesse@redhat.com>
Fri, 18 Sep 2020 10:12:26 +0000 (12:12 +0200)
Check whether linknumber larger than INTERFACE_MAX and display error if
so.

Signed-off-by: liangxin1300 <XLiang@suse.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
exec/totemconfig.c

index 40e2b7738b331a65b1ff6184a2acf47791308f2a..5c428c46efe0d91488b7af688999a4f5e4320848 100644 (file)
@@ -1369,6 +1369,16 @@ static int put_nodelist_members_to_config(struct totem_config *totem_config, icm
                        if (res != 3 || strcmp(tmp_key2, "_addr") != 0) {
                                continue;
                        }
+                       if (linknumber >= INTERFACE_MAX) {
+                               snprintf (error_string_response, sizeof(error_string_response),
+                                               "parse error in config: interface ring number %u is bigger than allowed maximum %u\n",
+                                               linknumber, INTERFACE_MAX - 1);
+                               *error_string = error_string_response;
+
+                               icmap_iter_finalize(iter2);
+                               icmap_iter_finalize(iter);
+                               return (-1);
+                       }
 
                        if (icmap_get_string_r(map, iter_key2, &node_addr_str) != CS_OK) {
                                continue;