Vishal Verma wrote:
> A NULL check in region_action() implies that 'decoder' might be NULL, but
> later we dereference it during cxl_decoder_foreach(). The NULL check is
> valid because it was the filter result being checked, however, while
> doing this, the original 'decoder' variable was being clobbered.
> 
> Check the filter results independently of the original decoder variable.
> 
> Cc: Dan Williams <dan.j.willi...@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.ve...@intel.com>
> ---
>  cxl/region.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/cxl/region.c b/cxl/region.c
> index a30313c..334fcc2 100644
> --- a/cxl/region.c
> +++ b/cxl/region.c
> @@ -686,9 +686,8 @@ static int region_action(int argc, const char **argv, 
> struct cxl_ctx *ctx,
>                       continue;
>  
>               cxl_decoder_foreach (port, decoder) {
> -                     decoder = util_cxl_decoder_filter(decoder,
> -                                                       param.root_decoder);
> -                     if (!decoder)
> +                     if (!util_cxl_decoder_filter(decoder,
> +                                                  param.root_decoder))
>                               continue;

Looks good.

Reviewed-by: Dan Williams <dan.j.willi...@intel.com>

Reply via email to