* grub-core/kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Check
range of R_SPARC_HI22. Implement R_SPARC_LM22.
This commit is contained in:
parent
7b54b62682
commit
21eee750b7
2 changed files with 10 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2013-12-09 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Check
|
||||||
|
range of R_SPARC_HI22.
|
||||||
|
Implement R_SPARC_LM22.
|
||||||
|
|
||||||
2013-12-09 Vladimir Serbinenko <phcoder@gmail.com>
|
2013-12-09 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/kern/powerpc/dl_helper.c (grub_arch_dl_get_tramp_got_size):
|
* grub-core/kern/powerpc/dl_helper.c (grub_arch_dl_get_tramp_got_size):
|
||||||
|
|
|
@ -90,6 +90,10 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||||
*addr = (*addr & 0xFFFFFC00) | ((value >> 32) & 0x3FF);
|
*addr = (*addr & 0xFFFFFC00) | ((value >> 32) & 0x3FF);
|
||||||
break;
|
break;
|
||||||
case R_SPARC_HI22: /* 9 V-imm22 */
|
case R_SPARC_HI22: /* 9 V-imm22 */
|
||||||
|
if (value >> 32)
|
||||||
|
return grub_error (GRUB_ERR_BAD_MODULE,
|
||||||
|
"address out of 32 bits range");
|
||||||
|
case R_SPARC_LM22:
|
||||||
*addr = (*addr & 0xFFC00000) | ((value >> 10) & 0x3FFFFF);
|
*addr = (*addr & 0xFFC00000) | ((value >> 10) & 0x3FFFFF);
|
||||||
break;
|
break;
|
||||||
case R_SPARC_LO10: /* 12 T-simm13 */
|
case R_SPARC_LO10: /* 12 T-simm13 */
|
||||||
|
|
Loading…
Reference in a new issue