]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: stktable: avoid ambiguous stktable_data_ptr() usage in cli_io_handler_table()
authorAurelien DARRAGON <adarragon@haproxy.com>
Mon, 3 Jun 2024 13:24:27 +0000 (15:24 +0200)
committerAurelien DARRAGON <adarragon@haproxy.com>
Mon, 3 Jun 2024 14:59:54 +0000 (16:59 +0200)
As reported by @Bbulatov in GH #2586, stktable_data_ptr() return value is
used without checking it isn't NULL first, which may happen if the given
type is invalid or not stored in the table.

However, since date_type is set by table_prepare_data_request() right
before cli_io_handler_table() is invoked, date_type is not expected to
be invalid: table_prepare_data_request() normally checked that the type
is stored inside the table. Thus stktable_data_ptr() should not be failing
at this point, so we add a BUG_ON() to indicate that.

src/stick_table.c

index 08a22e40858719594047670845ece5a8e14dbd10..ff19709d631e2064717abfcbb9f3b89053fffdb0 100644 (file)
@@ -5597,6 +5597,10 @@ static int cli_io_handler_table(struct appctx *appctx)
                                        ptr = stktable_data_ptr(ctx->t,
                                                                ctx->entry,
                                                                dt);
+                                       /* table_prepare_data_request() normally ensures the
+                                        * type is both valid and stored
+                                        */
+                                       BUG_ON(!ptr);
 
                                        data = 0;
                                        switch (stktable_data_types[dt].std_type) {