summaryrefslogtreecommitdiff
path: root/libelf/gelf_rel.c
diff options
context:
space:
mode:
Diffstat (limited to 'libelf/gelf_rel.c')
-rw-r--r--libelf/gelf_rel.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/libelf/gelf_rel.c b/libelf/gelf_rel.c
index 02a613383dfb0..54a1002c8679a 100644
--- a/libelf/gelf_rel.c
+++ b/libelf/gelf_rel.c
@@ -31,7 +31,7 @@
#include "_libelf.h"
-ELFTC_VCSID("$Id: gelf_rel.c 3177 2015-03-30 18:19:41Z emaste $");
+ELFTC_VCSID("$Id: gelf_rel.c 3739 2019-05-06 05:18:15Z jkoshy $");
GElf_Rel *
gelf_getrel(Elf_Data *ed, int ndx, GElf_Rel *dst)
@@ -67,9 +67,9 @@ gelf_getrel(Elf_Data *ed, int ndx, GElf_Rel *dst)
return (NULL);
}
- msz = _libelf_msize(ELF_T_REL, ec, e->e_version);
+ if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0)
+ return (NULL);
- assert(msz > 0);
assert(ndx >= 0);
if (msz * (size_t) ndx >= d->d_data.d_size) {
@@ -129,9 +129,9 @@ gelf_update_rel(Elf_Data *ed, int ndx, GElf_Rel *dr)
return (0);
}
- msz = _libelf_msize(ELF_T_REL, ec, e->e_version);
+ if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0)
+ return (0);
- assert(msz > 0);
assert(ndx >= 0);
if (msz * (size_t) ndx >= d->d_data.d_size) {
@@ -144,7 +144,7 @@ gelf_update_rel(Elf_Data *ed, int ndx, GElf_Rel *dr)
LIBELF_COPY_U32(rel32, 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);