]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: stktable: stktable_data_ptr() cannot fail in table_process_entry()
authorAurelien DARRAGON <adarragon@haproxy.com>
Thu, 28 Dec 2023 08:48:56 +0000 (09:48 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 2 Jan 2024 07:51:51 +0000 (08:51 +0100)
In table_process_entry(), stktable_data_ptr() result is dereferenced
without checking if it's NULL first, which may happen when bad inputs
are provided to the function.

However, data_type and ts arguments were already checked prior to calling
the function, so we know for sure that stktable_data_ptr() will never
return NULL in this case.

However some static code analyzers such as Coverity are being confused
because they think that the result might possibly be NULL.
(See GH #2398)

To make it explicit that we always provide good inputs and expect valid
result, let's switch to the __stktable_data_ptr() unsafe function.

src/stick_table.c

index 6b461c00ff47f7d450d118cf87c05899e2737110..26c0db21a0e0257f0cb8affccb068d29faee36c7 100644 (file)
@@ -5025,7 +5025,7 @@ static int table_process_entry(struct appctx *appctx, struct stksess *ts, char *
                                return 1;
                        }
 
-                       ptr = stktable_data_ptr(t, ts, data_type);
+                       ptr = __stktable_data_ptr(t, ts, data_type);
 
                        switch (stktable_data_types[data_type].std_type) {
                        case STD_T_SINT: