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] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250213011610.ov3q2rq6bfzdzqlk@synopsys.com>
Date: Thu, 13 Feb 2025 01:16:15 +0000
From: Thinh Nguyen <Thinh.Nguyen@...opsys.com>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
CC: Thinh Nguyen <Thinh.Nguyen@...opsys.com>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Felipe Balbi <balbi@...nel.org>,
        "linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
        "devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Rob Herring <robh@...nel.org>,
        Krzysztof Kozlowski <krzk+dt@...nel.org>,
        Conor Dooley <conor+dt@...nel.org>, Ferry Toth <fntoth@...il.com>
Subject: Re: [PATCH v2 2/3] usb: dwc3: gadget: Add support for
 snps,reserved-endpoints property

On Wed, Feb 12, 2025, Andy Shevchenko wrote:
> On Wed, Feb 12, 2025 at 01:10:17AM +0000, Thinh Nguyen wrote:
> > On Mon, Feb 03, 2025, Andy Shevchenko wrote:
> > > The snps,reserved-endpoints property lists the reserved endpoints
> > > that shouldn't be used for normal transfers. Add support for that
> > > to the driver.
> 
> > > While at it, make sure we don't crash by a sudden access to those
> > > endpoints in the gadget driver.
> 
> ^^^ (1)
> 
> ...
> 
> > >  	/* Reset resource allocation flags */
> > > -	for (i = resource_index; i < dwc->num_eps && dwc->eps[i]; i++)
> > > -		dwc->eps[i]->flags &= ~DWC3_EP_RESOURCE_ALLOCATED;
> > > +	for (i = resource_index; i < dwc->num_eps; i++) {
> > > +		dep = dwc->eps[i];
> > > +		if (!dep)
> > > +			continue;
> > > +
> > > +		dep->flags &= ~DWC3_EP_RESOURCE_ALLOCATED;
> > > +	}
> > 
> > Please keep code refactoring as a separate patch.
> 
> It's induced by the change you asked for, it's not a simple refactoring.
> 
> Or do you want me to have the patch to check eps against NULL to be separated
> from this one (see (1) above)?


The condition "i < dwc->num && dwc->eps[i]" already does the NULL check.
The change here only move things around.

> 
> > >  
> > >  	return 0;
> 
> ...
> 
> > > +static int dwc3_gadget_parse_reserved_endpoints(struct dwc3 *dwc, const char *propname,
> > > +						u8 *eps, u8 num)
> > > +{
> > > +	u8 count;
> > > +	int ret;
> > > +
> > > +	if (!device_property_present(dwc->dev, propname))
> > > +		return 0;
> > > +
> > > +	ret = device_property_count_u8(dwc->dev, propname);
> > > +	if (ret < 0)
> > > +		return ret;
> > > +	count = ret;
> > > +
> > > +	ret = device_property_read_u8_array(dwc->dev, propname, eps, min(num, count));
> > 
> > Why do min(num, count)? Can we just put the size of the eps array as
> > specified by the function doc.
> 
> No, we can't ask more than there is. The call will fail in such a case.
> In case you wonder, the similar OF call also behaves in the same way.

Yeah, I realized that right after I wrote the comment and responded
after.

BR,
Thinh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ