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]
Date:	Mon, 18 Apr 2016 11:26:42 +0200
From:	Andrzej Pietrasiewicz <andrzej.p@...sung.com>
To:	Michal Nazarewicz <mina86@...a86.com>,
	Alan Stern <stern@...land.harvard.edu>
Cc:	Ivaylo Dimitrov <ivo.g.dimitrov.75@...il.com>,
	Tony Lindgren <tony@...mide.com>, linux-kernel@...r.kernel.org,
	linux-usb@...r.kernel.org,
	Felipe Balbi <felipe.balbi@...ux.intel.com>,
	Bin Liu <b-liu@...com>, pali.rohar@...il.com
Subject: Re: [PATCH] usb: f_mass_storage: test whether thread is running before
 starting another

Hi Michał,

W dniu 07.04.2016 o 18:40, Michal Nazarewicz pisze:
>> On Thu, 7 Apr 2016, Michal Nazarewicz wrote:
>>> This makes me suspect it’s not possible to link a function instance to
>>> the same configuration twice, but now that I think about it, I’m not
>>> quite sure what would happen if one did:
>>>
>>> 	ln -s functions/mass_storage.0 configs/c.1/foo
>>> 	ln -s functions/mass_storage.0 configs/c.1/bar
>
> On Thu, Apr 07 2016, Alan Stern wrote:
>> Do you think it would be worthwhile to check for this possibility in
>> the driver and report an error?
>
> I think this should be (if it isn’t already) blocked on configfs side.
> I cannot see a legitimate use of such configuration and I wouldn’t be
> surprised if other function drivers broke as well.
>

Sorry about late response.

The function responsible for verifying if a symlink can be made is
in drivers/usb/gadget/configfs.c: config_usb_cfg_link()

There is a comment from the author:

	/*
	 * Make sure this function is from within our _this_ gadget and not
	 * from another gadget or a random directory.
	 * Also a function instance can only be linked once.
	 */

This is the code fragment of interest:

	list_for_each_entry(f, &cfg->func_list, list) {
		if (f->fi == fi) {
			ret = -EEXIST;
			goto out;
		}
	}


AP

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ