* 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
				
			
		|  | @ -90,6 +90,10 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr, | |||
| 	  *addr = (*addr & 0xFFFFFC00) | ((value >> 32) & 0x3FF); | ||||
| 	  break; | ||||
| 	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); | ||||
| 	  break; | ||||
| 	case R_SPARC_LO10: /* 12 T-simm13 */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue