On Tue, 2026-11-10 at 10:14 +0100, Christian Brauner wrote:
> fsg_lun_open() takes any regular file as the backing file of a LUN.
> The
> file-storage kthread then reads and writes it with kernel_read() and
> kernel_write() on behalf of the USB host. With a procfs or sysfs file
> behind a LUN the host gets to read and write kernel interfaces with
> kernel credentials. Refuse files on pseudo filesystems just like loop
> does.
> 
> Signed-off-by: Christian Brauner (Amutable) <[email protected]>

Reviewed-by: Alexander Mikhalitsyn <[email protected]>

> ---
>  drivers/usb/gadget/function/storage_common.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/gadget/function/storage_common.c
> b/drivers/usb/gadget/function/storage_common.c
> index 75831f2c7abe..83683ade20c2 100644
> --- a/drivers/usb/gadget/function/storage_common.c
> +++ b/drivers/usb/gadget/function/storage_common.c
> @@ -211,6 +211,11 @@ int fsg_lun_open(struct fsg_lun *curlun, const
> char *filename)
>               goto out;
>       }
>  
> +     if (file_is_pseudo(filp)) {
> +             LINFO(curlun, "file on a pseudo filesystem: %s\n",
> filename);
> +             goto out;
> +     }
> +
>       /*
>        * If we can't read the file, it's no good.
>        * If we can't write the file, use it read-only.

Reply via email to