Re: [Resend PATCH v2] testusb: add path /dev/bus/usb to defaultsearch paths of usbfs

From: David Rientjes
Date: Mon May 21 2012 - 21:41:29 EST


On Tue, 22 May 2012, Du, ChangbinX wrote:

> As real device-nodes managed by udev whose nodes lived in /dev/bus/usb are mostly used today, let testusb tool use that directory as one default path make tool be more convenient to use.
>
> Signed-off-by: Du Changbin <changbinx.du@xxxxxxxxx>
> ---
> tools/usb/testusb.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/tools/usb/testusb.c b/tools/usb/testusb.c index 6e0f567..82d7c59 100644
> --- a/tools/usb/testusb.c
> +++ b/tools/usb/testusb.c
> @@ -358,6 +358,7 @@ static const char *usbfs_dir_find(void) {
> static char usbfs_path_0[] = "/dev/usb/devices";
> static char usbfs_path_1[] = "/proc/bus/usb/devices";
> + static char udev_usb_path[] = "/dev/bus/usb";
>
> static char *const usbfs_paths[] = {
> usbfs_path_0, usbfs_path_1
> @@ -376,6 +377,10 @@ static const char *usbfs_dir_find(void)
> }
> } while (++it != end);
>
> + /* real device-nodes managed by udev */
> + if (access(udev_usb_path, F_OK) == 0)
> + return udev_usb_path;
> +
> return NULL;
> }
>

Two issues with this: F_OK only guarantees that the path exists, it does
not guarantee that it is readable like this function guarantees for
usbfs_paths, and access() shouldn't be used because of its security
implications, you're better off using open() and testing for fd.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/