]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
WIP/MEDIUM: peers: Forbid <shards> value greater than 65535
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 14 Oct 2025 16:46:33 +0000 (18:46 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 21 Oct 2025 13:11:34 +0000 (15:11 +0200)
doc/configuration.txt
src/cfgparse.c

index b02a8f7cb6079ab31c6f5a21757d5c8092344c03..ddc7c20025e56af853795b6adc55b55a77f0478a 100644 (file)
@@ -30002,11 +30002,11 @@ server <peername> [/<path>] [param*]
         server haproxy3 10.2.0.1:1024
 
 shards <shards>
-
   In some configurations, one would like to distribute the stick-table contents
   to some peers in place of sending all the stick-table contents to each peer
-  declared in the "peers" section. In such cases, "shards" specifies the
-  number of peer involved in this stick-table contents distribution.
+  declared in the "peers" section. In such cases, "shards" specifies the number
+  of peer involved in this stick-table contents distribution. It must be an
+  integer value between 1 and 65535.
   See also "shard" server parameter.
 
 table <tablename> type {ip | integer | string [len <length>] | binary [len <length>]}
index edaaa70e6d61ee151bbf241ab5dfb73f333e9171..80ec5a24bd316497594d3e35830f57e8fde0e75b 100644 (file)
@@ -1010,8 +1010,8 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
                        goto out;
                }
 
-               if (!curpeers->nb_shards) {
-                       ha_alert("parsing [%s:%d] : '%s' : expects a strictly positive integer argument\n",
+               if (!curpeers->nb_shards || curpeers->nb_shards > 65535) {
+                       ha_alert("parsing [%s:%d] : '%s' : expects a integer argument between 1 and 65535\n",
                                 file, linenum, args[0]);
                        err_code |= ERR_FATAL;
                        goto out;