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.march...@redhat.com>
Acked-by: Bruce Richardson <bruce.richard...@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
> 

Reply via email to