mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
exfat: fix truncated volume labels returned by FS_IOC_GETFSLABEL
exfat_ioctl_get_volume_label() passes uniname.name_len to exfat_utf16_to_nls() as the output buffer length. However, name_len is the number of UTF-16 code units, while exfat_utf16_to_nls() expects the buffer size in bytes. As a result, volume labels that expand during charset conversion are truncated.The destination buffer is FSLABEL_MAX bytes long, so pass its actual size to the conversion helper. Signed-off-by: Yang Wen <anmuxixixi@gmail.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
This commit is contained in:
parent
0eb24ad05a
commit
27af339219
|
|
@ -566,7 +566,7 @@ static int exfat_ioctl_get_volume_label(struct super_block *sb, unsigned long ar
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = exfat_utf16_to_nls(sb, &uniname, label, uniname.name_len);
|
||||
ret = exfat_utf16_to_nls(sb, &uniname, label, sizeof(label));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user