On Thu, Jan 11, 2024 at 12:09:27PM +0000, Javi Merino wrote:
> In remove_nodes(), overlay_node is dereferenced when printing the
> error message even though it is known to be NULL.  Return without
> printing as an error message is already printed by the caller.
> 
> The semantic patch that spots this code is available in
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/coccinelle/null/deref_null.cocci?id=1f874787ed9a2d78ed59cb21d0d90ac0178eceb0
> 
> Fixes: 7e5c4a8b86f1 ("xen/arm: Implement device tree node removal 
> functionalities")
> Signed-off-by: Javi Merino <[email protected]>
Reviewed-by: Vikram Garhwal <[email protected]>

> ---
> CC: Vikram Garhwal <[email protected]>
> CC: Julien Grall <[email protected]>
> 
>  xen/common/dt-overlay.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/xen/common/dt-overlay.c b/xen/common/dt-overlay.c
> index 5663a049e90a..1b197381f616 100644
> --- a/xen/common/dt-overlay.c
> +++ b/xen/common/dt-overlay.c
> @@ -427,11 +427,7 @@ static int remove_nodes(const struct overlay_track 
> *tracker)
>      {
>          overlay_node = (struct dt_device_node *)tracker->nodes_address[j];
>          if ( overlay_node == NULL )
> -        {
> -            printk(XENLOG_ERR "Device %s is not present in the tree. 
> Removing nodes failed\n",
> -                   overlay_node->full_name);
>              return -EINVAL;
> -        }
>  
>          rc = remove_descendant_nodes_resources(overlay_node);
>          if ( rc )
> -- 
> 2.42.0
> 

Reply via email to