* grub-core/fs/udf.c (read_string): Macroify GRUB_MAX_UTF8_PER_UTF16.
* grub-core/fs/jfs.c (grub_jfs_diropen): Likewise. * grub-core/fs/fat.c (grub_fat_iterate_dir): Likewise.
This commit is contained in:
parent
53072f9b96
commit
78c2cd1c62
4 changed files with 10 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2011-12-13 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/fs/udf.c (read_string): Macroify GRUB_MAX_UTF8_PER_UTF16.
|
||||||
|
* grub-core/fs/jfs.c (grub_jfs_diropen): Likewise.
|
||||||
|
* grub-core/fs/fat.c (grub_fat_iterate_dir): Likewise.
|
||||||
|
|
||||||
2011-12-13 Vladimir Serbinenko <phcoder@gmail.com>
|
2011-12-13 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/term/at_keyboard.c (set_scancodes): Fix preprocessor
|
* grub-core/term/at_keyboard.c (set_scancodes): Fix preprocessor
|
||||||
|
|
|
@ -589,7 +589,7 @@ grub_fat_iterate_dir (grub_disk_t disk, struct grub_fat_data *data,
|
||||||
char *filename;
|
char *filename;
|
||||||
|
|
||||||
unibuf = grub_malloc (15 * 256 * 2);
|
unibuf = grub_malloc (15 * 256 * 2);
|
||||||
filename = grub_malloc (15 * 256 * 4 + 1);
|
filename = grub_malloc (15 * 256 * GRUB_MAX_UTF8_PER_UTF16 + 1);
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
@ -696,7 +696,7 @@ grub_fat_iterate_dir (grub_disk_t disk, struct grub_fat_data *data,
|
||||||
return grub_error (GRUB_ERR_BAD_FILE_TYPE, "not a directory");
|
return grub_error (GRUB_ERR_BAD_FILE_TYPE, "not a directory");
|
||||||
|
|
||||||
/* Allocate space enough to hold a long name. */
|
/* Allocate space enough to hold a long name. */
|
||||||
filename = grub_malloc (0x40 * 13 * 4 + 1);
|
filename = grub_malloc (0x40 * 13 * GRUB_MAX_UTF8_PER_UTF16 + 1);
|
||||||
unibuf = (grub_uint16_t *) grub_malloc (0x40 * 13 * 2);
|
unibuf = (grub_uint16_t *) grub_malloc (0x40 * 13 * 2);
|
||||||
if (! filename || ! unibuf)
|
if (! filename || ! unibuf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -241,7 +241,7 @@ struct grub_jfs_diropen
|
||||||
/* On-disk name is at most 255 UTF-16 codepoints.
|
/* On-disk name is at most 255 UTF-16 codepoints.
|
||||||
Every UTF-16 codepoint is at most 4 UTF-8 bytes.
|
Every UTF-16 codepoint is at most 4 UTF-8 bytes.
|
||||||
*/
|
*/
|
||||||
char name[256 * 4 + 1];
|
char name[256 * GRUB_MAX_UTF8_PER_UTF16 + 1];
|
||||||
grub_uint32_t ino;
|
grub_uint32_t ino;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
|
|
@ -820,7 +820,7 @@ read_string (grub_uint8_t *raw, grub_size_t sz)
|
||||||
for (i = 0; i < utf16len; i++)
|
for (i = 0; i < utf16len; i++)
|
||||||
utf16[i] = (raw[2 * i + 1] << 8) | raw[2*i + 2];
|
utf16[i] = (raw[2 * i + 1] << 8) | raw[2*i + 2];
|
||||||
}
|
}
|
||||||
ret = grub_malloc (utf16len * 3 + 1);
|
ret = grub_malloc (utf16len * GRUB_MAX_UTF8_PER_UTF16 + 1);
|
||||||
if (ret)
|
if (ret)
|
||||||
*grub_utf16_to_utf8 ((grub_uint8_t *) ret, utf16, utf16len) = '\0';
|
*grub_utf16_to_utf8 ((grub_uint8_t *) ret, utf16, utf16len) = '\0';
|
||||||
grub_free (utf16);
|
grub_free (utf16);
|
||||||
|
|
Loading…
Reference in a new issue