2009-08-28 Vladimir Serbinenko <phcoder@gmail.com>

* kern/file.c (grub_file_read): Check offset.
	* fs/hfs.c (grub_hfs_read_file): Remove unnecessary offset check.
	* fs/jfs.c (grub_jfs_read_file): Likewise.
	* fs/ntfs.c (grub_ntfs_read): Likewise.
	* fs/reiserfs.c (grub_reiserfs_read): Likewise.
	* fs/minix.c (grub_minix_read_file): Correct offset check.
	* fs/ufs.c (grub_ufs_read_file): Likewise.
This commit is contained in:
phcoder 2009-08-28 16:29:34 +00:00
parent b4f34077c8
commit 6f07b921bc
8 changed files with 21 additions and 24 deletions

View file

@ -112,6 +112,13 @@ grub_file_read (grub_file_t file, void *buf, grub_size_t len)
{
grub_ssize_t res;
if (file->offset > file->size)
{
grub_error (GRUB_ERR_OUT_OF_RANGE,
"Attempt to read pat the end of file.");
return -1;
}
if (len == 0 || len > file->size - file->offset)
len = file->size - file->offset;