[PATCH] usb: gadget: function: Fix returning incorrect PNP string

From: Wei Ming Chen
Date: Tue Jan 04 2022 - 23:04:53 EST


There will be 2 leading bytes indicating the total length of
the PNP string, so I think we should add value by 2, otherwise
the PNP string copied to user will not contain the last 2 bytes

Signed-off-by: Wei Ming Chen <jj251510319013@xxxxxxxxx>
---
drivers/usb/gadget/function/f_printer.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/function/f_printer.c b/drivers/usb/gadget/function/f_printer.c
index abec5c58f525..3fb00fd0b5ee 100644
--- a/drivers/usb/gadget/function/f_printer.c
+++ b/drivers/usb/gadget/function/f_printer.c
@@ -1005,9 +1005,11 @@ static int printer_func_setup(struct usb_function *f,
break;
}
value = strlen(dev->pnp_string);
+ memcpy(buf + 2, dev->pnp_string, value);
+
+ value += 2;
buf[0] = (value >> 8) & 0xFF;
buf[1] = value & 0xFF;
- memcpy(buf + 2, dev->pnp_string, value);
DBG(dev, "1284 PNP String: %x %s\n", value,
dev->pnp_string);
break;
--
2.25.1