From: Michal Nazarewicz<mina86@xxxxxxxxxx>
The fsg_file_store()
function does not check whether a LUN is removable or not
allowing one to specify an empty file name for a non-removable LUN. This
commit adds explicit check of whether a file name is provided for
non-removable LUNs.
Signed-off-by: Michal Nazarewicz<mina86@xxxxxxxxxx>
---
drivers/usb/gadget/storage_common.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/gadget/storage_common.c b/drivers/usb/gadget/storage_common.c
index e576678..52334d7 100644
--- a/drivers/usb/gadget/storage_common.c
+++ b/drivers/usb/gadget/storage_common.c
@@ -878,6 +878,9 @@ static ssize_t fsg_store_file(struct device *dev, struct device_attribute *attr,
if (count > 0 && buf[count-1] == '\n')
((char *) buf)[count-1] = 0; /* Ugh! */
+ /* Must specify a valid file if LUN is not removable. */
+ if (!curlun->removable&& !*buf)
+ return -EINVAL;