* 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:
Vladimir Serbinenko 2013-12-09 15:51:12 +01:00
parent 7b54b62682
commit 21eee750b7
2 changed files with 10 additions and 0 deletions

View file

@ -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):

View file

@ -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 */