aboutsummaryrefslogtreecommitdiff
path: root/libelf/gelf_rela.c
diff options
context:
space:
mode:
Diffstat (limited to 'libelf/gelf_rela.c')
-rw-r--r--libelf/gelf_rela.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/libelf/gelf_rela.c b/libelf/gelf_rela.c
index d485ab909299..0fa20a515292 100644
--- a/libelf/gelf_rela.c
+++ b/libelf/gelf_rela.c
@@ -31,7 +31,7 @@
#include "_libelf.h"
-ELFTC_VCSID("$Id: gelf_rela.c 3177 2015-03-30 18:19:41Z emaste $");
+ELFTC_VCSID("$Id: gelf_rela.c 3739 2019-05-06 05:18:15Z jkoshy $");
GElf_Rela *
gelf_getrela(Elf_Data *ed, int ndx, GElf_Rela *dst)
@@ -67,9 +67,9 @@ gelf_getrela(Elf_Data *ed, int ndx, GElf_Rela *dst)
return (NULL);
}
- msz = _libelf_msize(ELF_T_RELA, ec, e->e_version);
+ if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0)
+ return (NULL);
- assert(msz > 0);
assert(ndx >= 0);
if (msz * (size_t) ndx >= d->d_data.d_size) {
@@ -130,9 +130,9 @@ gelf_update_rela(Elf_Data *ed, int ndx, GElf_Rela *dr)
return (0);
}
- msz = _libelf_msize(ELF_T_RELA, ec, e->e_version);
+ if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0)
+ return (0);
- assert(msz > 0);
assert(ndx >= 0);
if (msz * (size_t) ndx >= d->d_data.d_size) {
@@ -145,7 +145,7 @@ gelf_update_rela(Elf_Data *ed, int ndx, GElf_Rela *dr)
LIBELF_COPY_U32(rela32, dr, r_offset);
- if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0UL) ||
+ if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0U) ||
ELF64_R_TYPE(dr->r_info) > ELF32_R_TYPE(~0U)) {
LIBELF_SET_ERROR(RANGE, 0);
return (0);