mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
usb_string_copy: Use kzalloc() to avoid leaking old data
If the string is read while being updated (which is why the copy is done in place) and the new string is longer than the old one, then the reader can read memory that isnt part of either string. Use memcpy() to copy the known length string instead of strcpy. Signed-off-by: David Laight <david.laight.linux@gmail.com> Link: https://patch.msgid.link/20260608095523.2606-37-david.laight.linux@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0f0ea552cd
commit
057df423bf
|
|
@ -125,11 +125,11 @@ static int usb_string_copy(const char *s, char **s_copy)
|
|||
if (copy) {
|
||||
str = copy;
|
||||
} else {
|
||||
str = kmalloc(USB_MAX_STRING_WITH_NULL_LEN, GFP_KERNEL);
|
||||
str = kzalloc(USB_MAX_STRING_WITH_NULL_LEN, GFP_KERNEL);
|
||||
if (!str)
|
||||
return -ENOMEM;
|
||||
}
|
||||
strcpy(str, s);
|
||||
memcpy(str, s, ret + 1);
|
||||
if (str[ret - 1] == '\n')
|
||||
str[ret - 1] = '\0';
|
||||
*s_copy = str;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user