diff options
Diffstat (limited to 'modutils/modutils-24.c')
-rw-r--r-- | modutils/modutils-24.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/modutils/modutils-24.c b/modutils/modutils-24.c index a878e74..4ede01f 100644 --- a/modutils/modutils-24.c +++ b/modutils/modutils-24.c @@ -865,19 +865,23 @@ arch_apply_relocation(struct obj_file *f, break; case R_H8_PCREL16: v -= dot + 2; - if ((ElfW(Sword))v > 0x7fff || - (ElfW(Sword))v < -(ElfW(Sword))0x8000) + if ((ElfW(Sword))v > 0x7fff + || (ElfW(Sword))v < -(ElfW(Sword))0x8000 + ) { ret = obj_reloc_overflow; - else + } else { *(unsigned short *)loc = v; + } break; case R_H8_PCREL8: v -= dot + 1; - if ((ElfW(Sword))v > 0x7f || - (ElfW(Sword))v < -(ElfW(Sword))0x80) + if ((ElfW(Sword))v > 0x7f + || (ElfW(Sword))v < -(ElfW(Sword))0x80 + ) { ret = obj_reloc_overflow; - else + } else { *(unsigned char *)loc = v; + } break; #elif defined(__i386__) |