[PATCH v5 20/22] cfgfile: fix section count with no name

Bruce Richardson bruce.richardson at intel.com
Wed Jul 23 17:08:06 CEST 2025


On Wed, Jul 23, 2025 at 03:31:53PM +0200, David Marchand wrote:
> Passing a NULL to strncmp is incorrect.
> 
>  + ------------------------------------------------------- +
>  + Test Suite : Test Cfgfile Unit Test Suite
>  + ------------------------------------------------------- +
> ../lib/cfgfile/rte_cfgfile.c:475:7: runtime error: null pointer passed as
> 	argument 2, which is declared to never be null
> 
> On the other hand, it seems the intent was to count all sections, so
> skip the whole loop and section name comparisons.
> 
> Fixes: c54e7234bc9e ("test/cfgfile: add basic unit tests")
> 
> Signed-off-by: David Marchand <david.marchand at redhat.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>

> ---
>  lib/cfgfile/rte_cfgfile.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/cfgfile/rte_cfgfile.c b/lib/cfgfile/rte_cfgfile.c
> index 8bbdcf146e..9723ec756f 100644
> --- a/lib/cfgfile/rte_cfgfile.c
> +++ b/lib/cfgfile/rte_cfgfile.c
> @@ -477,10 +477,14 @@ int rte_cfgfile_close(struct rte_cfgfile *cfg)
>  RTE_EXPORT_SYMBOL(rte_cfgfile_num_sections)
>  int
>  rte_cfgfile_num_sections(struct rte_cfgfile *cfg, const char *sectionname,
> -size_t length)
> +	size_t length)
>  {
> -	int i;
>  	int num_sections = 0;
> +	int i;
> +
> +	if (sectionname == NULL)
> +		return cfg->num_sections;
> +
>  	for (i = 0; i < cfg->num_sections; i++) {
>  		if (strncmp(cfg->sections[i].name, sectionname, length) == 0)
>  			num_sections++;
> -- 
> 2.50.0
> 


More information about the dev mailing list