]> git.baikalelectronics.ru Git - kernel.git/commit
usb: gadget: function: fix dangling pnp_string in f_printer.c
authorAlbert Briscoe <albertsbriscoe@gmail.com>
Sun, 11 Sep 2022 22:37:55 +0000 (15:37 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Oct 2022 11:22:39 +0000 (13:22 +0200)
commitd785b5193ef03be872aad8c3b580df0c59f83f4f
treecfb951aaaf54190965aad23a79353d59d4c351e4
parent9c29007398e3dfd2e42216a4d9980100f0de9e21
usb: gadget: function: fix dangling pnp_string in f_printer.c

[ Upstream commit 563216bce9a3a265110944ba9cd055221bf07ec8 ]

When opts->pnp_string is changed with configfs, new memory is allocated for
the string. It does not, however, update dev->pnp_string, even though the
memory is freed. When rquesting the string, the host then gets old or
corrupted data rather than the new string. The ieee 1284 id string should
be allowed to change while the device is connected.

The bug was introduced in commit 9587894819cf ("usb: gadget: printer:
Remove pnp_string static buffer"), which changed opts->pnp_string from a
char[] to a char*.
This patch changes dev->pnp_string from a char* to a char** pointing to
opts->pnp_string.

Fixes: 9587894819cf ("usb: gadget: printer: Remove pnp_string static buffer")
Signed-off-by: Albert Briscoe <albertsbriscoe@gmail.com>
Link: https://lore.kernel.org/r/20220911223753.20417-1-albertsbriscoe@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/gadget/function/f_printer.c