lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200911175919.GC613136@xps15>
Date:   Fri, 11 Sep 2020 11:59:19 -0600
From:   Mathieu Poirier <mathieu.poirier@...aro.org>
To:     Qi Liu <liuqi115@...wei.com>
Cc:     suzuki.poulose@....com, Al.Grant@....com,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
        linuxarm@...wei.com
Subject: Re: [PATCH] coresight: Don't allocate pdata->conns when there is no
 output port

Hi Liu,

On Tue, Sep 08, 2020 at 03:31:28PM +0800, Qi Liu wrote:
> When there is no output port, coresight_alloc_conns() still do the following
> copy connection information to pdata->conns, and this may cause kernel panic.
> Let's fix it.

Function coresight_alloc_conns() doesn't copy connection information.  Moreover
sink devices don't have an output port and this code has been stable for years
now.  As such I am suspecting that something else is going wrong...

Can you give more details about the coresight topology you are working with?  An
output of the kernel panic you are seeing would also be much appreciated.

Thanks,
Mathieu

> 
> Signed-off-by: Qi Liu <liuqi115@...wei.com>
> ---
>  drivers/hwtracing/coresight/coresight-platform.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-platform.c b/drivers/hwtracing/coresight/coresight-platform.c
> index bfd4423..cdc8824 100644
> --- a/drivers/hwtracing/coresight/coresight-platform.c
> +++ b/drivers/hwtracing/coresight/coresight-platform.c
> @@ -26,12 +26,13 @@
>  static int coresight_alloc_conns(struct device *dev,
>  				 struct coresight_platform_data *pdata)
>  {
> -	if (pdata->nr_outport) {
> -		pdata->conns = devm_kcalloc(dev, pdata->nr_outport,
> -					    sizeof(*pdata->conns), GFP_KERNEL);
> -		if (!pdata->conns)
> -			return -ENOMEM;
> -	}
> +	if (!pdata->nr_outport)
> +		return -ENOMEM;
> +
> +	pdata->conns = devm_kcalloc(dev, pdata->nr_outport,
> +				    sizeof(*pdata->conns), GFP_KERNEL);
> +	if (!pdata->conns)
> +		return -ENOMEM;
> 
>  	return 0;
>  }
> --
> 2.8.1
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ