Re: [PATCH] iommu/amd: Check if domain is NULL before dereference it

From: Dan Carpenter
Date: Thu Aug 24 2017 - 08:12:10 EST


On Thu, Aug 24, 2017 at 07:56:47PM +0800, Baoquan He wrote:
> In get_domain(), 'domain' could still be NULL before it's passed to
> dma_ops_domain() to dereference. For safety, check if 'domain' is
> NULL before passing to dma_ops_domain().
>
> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>
> ---
> drivers/iommu/amd_iommu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
> index 16f1e6af00b0..2e2d5e6a13b3 100644
> --- a/drivers/iommu/amd_iommu.c
> +++ b/drivers/iommu/amd_iommu.c
> @@ -2262,7 +2262,7 @@ static struct protection_domain *get_domain(struct device *dev)
> domain = to_pdomain(io_domain);
> attach_device(dev, domain);
> }
> - if (!dma_ops_domain(domain))
> + if (domain && !dma_ops_domain(domain))
> return ERR_PTR(-EBUSY);
>
> return domain;

This still doesn't look right. None of the callers can handle a NULL
domain.

regards,
dan carpenter