2010-01-27 Vladimir Serbinenko <phcoder@gmail.com>

* kern/disk.c (grub_disk_read): Fix offset computation when reading
	last sectors.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-01-27 17:30:03 +01:00
parent e709ebe2ef
commit 989e1f934b
2 changed files with 7 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2010-01-27 Vladimir Serbinenko <phcoder@gmail.com>
* kern/disk.c (grub_disk_read): Fix offset computation when reading
last sectors.
2010-01-27 Vladimir Serbinenko <phcoder@gmail.com>
* commands/hashsum.c (hash_file): Avoid possible stack overflow by

View file

@ -441,7 +441,7 @@ grub_disk_read (grub_disk_t disk, grub_disk_addr_t sector,
grub_errno = GRUB_ERR_NONE;
num = ((size + GRUB_DISK_SECTOR_SIZE - 1)
num = ((size + real_offset + pos + GRUB_DISK_SECTOR_SIZE - 1)
>> GRUB_DISK_SECTOR_BITS);
p = grub_realloc (tmp_buf, num << GRUB_DISK_SECTOR_BITS);
@ -458,7 +458,7 @@ grub_disk_read (grub_disk_t disk, grub_disk_addr_t sector,
goto finish;
}
grub_memcpy (buf, tmp_buf + real_offset, size);
grub_memcpy (buf, tmp_buf + pos + real_offset, size);
/* Call the read hook, if any. */
if (disk->read_hook)