[PATCH] net/mana: avoid the use of variable length array

Andre Muezerie andremue at linux.microsoft.com
Thu Mar 6 03:17:45 CET 2025


On Tue, Mar 04, 2025 at 04:37:32PM -0800, longli at linuxonhyperv.com wrote:
> From: Long Li <longli at microsoft.com>
> 
> The pathname can be defined as name[MAX_PATH]. This makes the driver
> compilable using MSVC.
> 
> Signed-off-by: Long Li <longli at microsoft.com>
> ---
>  drivers/net/mana/mana.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana.c
> index c37c4e3444..d12dff6ce1 100644
> --- a/drivers/net/mana/mana.c
> +++ b/drivers/net/mana/mana.c
> @@ -36,11 +36,8 @@ static rte_spinlock_t mana_shared_data_lock = RTE_SPINLOCK_INITIALIZER;
>  
>  /* Allocate a buffer on the stack and fill it with a printf format string. */
>  #define MANA_MKSTR(name, ...) \
> -	int mkstr_size_##name = snprintf(NULL, 0, "" __VA_ARGS__); \
> -	char name[mkstr_size_##name + 1]; \
> -	\
> -	memset(name, 0, mkstr_size_##name + 1); \
> -	snprintf(name, sizeof(name), "" __VA_ARGS__)
> +	char name[PATH_MAX]; \
> +	snprintf(name, PATH_MAX, "" __VA_ARGS__)
>  
>  int mana_logtype_driver;
>  int mana_logtype_init;
> -- 
> 2.34.1

Did you try to remove the line below from mana/meson.build?
That line prevents the compiler from complain about VLAs. If
the driver is VLA-free after this fix it would be great
if the compiler was allowed to complain about VLAs (default
in DPDK project).

If the code still compiles without this line then it should be
safe to remove it:

cflags += no_wvla_cflag
--
Andre Muezerie


More information about the dev mailing list