aboutsummaryrefslogtreecommitdiff
path: root/modutils/modutils-24.c
diff options
context:
space:
mode:
Diffstat (limited to 'modutils/modutils-24.c')
-rw-r--r--modutils/modutils-24.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/modutils/modutils-24.c b/modutils/modutils-24.c
index a878e740c..4ede01fe8 100644
--- a/modutils/modutils-24.c
+++ b/modutils/modutils-24.c
@@ -865,19 +865,23 @@ arch_apply_relocation(struct obj_file *f,
865 break; 865 break;
866 case R_H8_PCREL16: 866 case R_H8_PCREL16:
867 v -= dot + 2; 867 v -= dot + 2;
868 if ((ElfW(Sword))v > 0x7fff || 868 if ((ElfW(Sword))v > 0x7fff
869 (ElfW(Sword))v < -(ElfW(Sword))0x8000) 869 || (ElfW(Sword))v < -(ElfW(Sword))0x8000
870 ) {
870 ret = obj_reloc_overflow; 871 ret = obj_reloc_overflow;
871 else 872 } else {
872 *(unsigned short *)loc = v; 873 *(unsigned short *)loc = v;
874 }
873 break; 875 break;
874 case R_H8_PCREL8: 876 case R_H8_PCREL8:
875 v -= dot + 1; 877 v -= dot + 1;
876 if ((ElfW(Sword))v > 0x7f || 878 if ((ElfW(Sword))v > 0x7f
877 (ElfW(Sword))v < -(ElfW(Sword))0x80) 879 || (ElfW(Sword))v < -(ElfW(Sword))0x80
880 ) {
878 ret = obj_reloc_overflow; 881 ret = obj_reloc_overflow;
879 else 882 } else {
880 *(unsigned char *)loc = v; 883 *(unsigned char *)loc = v;
884 }
881 break; 885 break;
882 886
883#elif defined(__i386__) 887#elif defined(__i386__)