net: openvswitch: Annotate struct mask_array with __counted_by
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 14 Oct 2023 06:34:53 +0000 (08:34 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 17 Oct 2023 11:56:03 +0000 (13:56 +0200)
Prepare for the coming implementation by GCC and Clang of the __counted_by
attribute. Flexible array members annotated with __counted_by can have
their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
(for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
functions).

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/ca5c8049f58bb933f231afd0816e30a5aaa0eddd.1697264974.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/openvswitch/flow_table.h

index 9e659db..f524dc3 100644 (file)
@@ -48,7 +48,7 @@ struct mask_array {
        int count, max;
        struct mask_array_stats __percpu *masks_usage_stats;
        u64 *masks_usage_zero_cntr;
-       struct sw_flow_mask __rcu *masks[];
+       struct sw_flow_mask __rcu *masks[] __counted_by(max);
 };
 
 struct table_instance {