|
|
f96e0b |
From 6a6140eac9a2d0889dcf6d118979d4af242b8060 Mon Sep 17 00:00:00 2001
|
|
|
f96e0b |
From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
|
|
|
f96e0b |
Date: Sun, 22 Jul 2012 16:30:48 +0200
|
|
|
f96e0b |
Subject: [PATCH 014/482] * grub-core/loader/i386/bsd.c
|
|
|
f96e0b |
(grub_bsd_elf32_size_hook): Fix mask. (grub_bsd_elf32_hook): Likewise.
|
|
|
f96e0b |
(grub_bsd_elf64_size_hook): Likewise. (grub_bsd_elf64_hook): Likewise.
|
|
|
f96e0b |
(grub_bsd_load_elf): Likewise.
|
|
|
f96e0b |
|
|
|
f96e0b |
---
|
|
|
f96e0b |
ChangeLog | 8 ++++++++
|
|
|
f96e0b |
grub-core/loader/i386/bsd.c | 10 +++++-----
|
|
|
f96e0b |
2 files changed, 13 insertions(+), 5 deletions(-)
|
|
|
f96e0b |
|
|
|
f96e0b |
diff --git a/ChangeLog b/ChangeLog
|
|
|
f96e0b |
index 892d31b..f514465 100644
|
|
|
f96e0b |
--- a/ChangeLog
|
|
|
f96e0b |
+++ b/ChangeLog
|
|
|
f96e0b |
@@ -1,5 +1,13 @@
|
|
|
f96e0b |
2012-07-22 Vladimir Serbinenko <phcoder@gmail.com>
|
|
|
f96e0b |
|
|
|
f96e0b |
+ * grub-core/loader/i386/bsd.c (grub_bsd_elf32_size_hook): Fix mask.
|
|
|
f96e0b |
+ (grub_bsd_elf32_hook): Likewise.
|
|
|
f96e0b |
+ (grub_bsd_elf64_size_hook): Likewise.
|
|
|
f96e0b |
+ (grub_bsd_elf64_hook): Likewise.
|
|
|
f96e0b |
+ (grub_bsd_load_elf): Likewise.
|
|
|
f96e0b |
+
|
|
|
f96e0b |
+2012-07-22 Vladimir Serbinenko <phcoder@gmail.com>
|
|
|
f96e0b |
+
|
|
|
f96e0b |
* grub-core/lib/xzembed/xz_dec_stream.c (hash_validate): Fix behaviour
|
|
|
f96e0b |
if hash function is unavailable.
|
|
|
f96e0b |
(dec_stream_header): Likewise.
|
|
|
f96e0b |
diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c
|
|
|
f96e0b |
index 0fd4df0..6e024e4 100644
|
|
|
f96e0b |
--- a/grub-core/loader/i386/bsd.c
|
|
|
f96e0b |
+++ b/grub-core/loader/i386/bsd.c
|
|
|
f96e0b |
@@ -1309,7 +1309,7 @@ grub_bsd_elf32_size_hook (grub_elf_t elf __attribute__ ((unused)),
|
|
|
f96e0b |
&& phdr->p_type != PT_DYNAMIC)
|
|
|
f96e0b |
return 0;
|
|
|
f96e0b |
|
|
|
f96e0b |
- paddr = phdr->p_paddr & 0xFFFFFF;
|
|
|
f96e0b |
+ paddr = phdr->p_paddr & 0xFFFFFFF;
|
|
|
f96e0b |
|
|
|
f96e0b |
if (paddr < kern_start)
|
|
|
f96e0b |
kern_start = paddr;
|
|
|
f96e0b |
@@ -1333,7 +1333,7 @@ grub_bsd_elf32_hook (Elf32_Phdr * phdr, grub_addr_t * addr, int *do_load)
|
|
|
f96e0b |
}
|
|
|
f96e0b |
|
|
|
f96e0b |
*do_load = 1;
|
|
|
f96e0b |
- phdr->p_paddr &= 0xFFFFFF;
|
|
|
f96e0b |
+ phdr->p_paddr &= 0xFFFFFFF;
|
|
|
f96e0b |
paddr = phdr->p_paddr;
|
|
|
f96e0b |
|
|
|
f96e0b |
*addr = (grub_addr_t) (paddr - kern_start + (grub_uint8_t *) kern_chunk_src);
|
|
|
f96e0b |
@@ -1351,7 +1351,7 @@ grub_bsd_elf64_size_hook (grub_elf_t elf __attribute__ ((unused)),
|
|
|
f96e0b |
&& phdr->p_type != PT_DYNAMIC)
|
|
|
f96e0b |
return 0;
|
|
|
f96e0b |
|
|
|
f96e0b |
- paddr = phdr->p_paddr & 0xffffff;
|
|
|
f96e0b |
+ paddr = phdr->p_paddr & 0xfffffff;
|
|
|
f96e0b |
|
|
|
f96e0b |
if (paddr < kern_start)
|
|
|
f96e0b |
kern_start = paddr;
|
|
|
f96e0b |
@@ -1375,7 +1375,7 @@ grub_bsd_elf64_hook (Elf64_Phdr * phdr, grub_addr_t * addr, int *do_load)
|
|
|
f96e0b |
}
|
|
|
f96e0b |
|
|
|
f96e0b |
*do_load = 1;
|
|
|
f96e0b |
- paddr = phdr->p_paddr & 0xffffff;
|
|
|
f96e0b |
+ paddr = phdr->p_paddr & 0xfffffff;
|
|
|
f96e0b |
|
|
|
f96e0b |
*addr = (grub_addr_t) (paddr - kern_start + (grub_uint8_t *) kern_chunk_src);
|
|
|
f96e0b |
|
|
|
f96e0b |
@@ -1394,7 +1394,7 @@ grub_bsd_load_elf (grub_elf_t elf, const char *filename)
|
|
|
f96e0b |
{
|
|
|
f96e0b |
grub_relocator_chunk_t ch;
|
|
|
f96e0b |
|
|
|
f96e0b |
- entry = elf->ehdr.ehdr32.e_entry & 0xFFFFFF;
|
|
|
f96e0b |
+ entry = elf->ehdr.ehdr32.e_entry & 0xFFFFFFF;
|
|
|
f96e0b |
err = grub_elf32_phdr_iterate (elf, filename,
|
|
|
f96e0b |
grub_bsd_elf32_size_hook, NULL);
|
|
|
f96e0b |
if (err)
|
|
|
f96e0b |
--
|
|
|
f96e0b |
1.8.2.1
|
|
|
f96e0b |
|