Print this page
smatch clean rtld
*** 235,250 ****
dbg_class = dbg_desc->d_class;
dbg_desc->d_class = 0;
}
/*
! * Perform some basic sanity checks. If we didn't get a load map or
! * the relocation offset is invalid then its possible someone has walked
! * over the .got entries or jumped to plt0 out of the blue.
*/
! if ((!lmp) && (pltndx <=
! (ulong_t)PLTRELSZ(lmp) / (ulong_t)RELENT(lmp))) {
Conv_inv_buf_t inv_buf;
eprintf(lml, ERR_FATAL, MSG_INTL(MSG_REL_PLTREF),
conv_reloc_amd64_type(R_AMD64_JUMP_SLOT, 0, &inv_buf),
EC_NATPTR(lmp), EC_XWORD(pltndx), EC_NATPTR(from));
--- 235,248 ----
dbg_class = dbg_desc->d_class;
dbg_desc->d_class = 0;
}
/*
! * Perform some basic sanity checks. If the relocation offset is
! * invalid then its possible someone has walked over the .got entries.
*/
! if (pltndx > (ulong_t)PLTRELSZ(lmp) / (ulong_t)RELENT(lmp)) {
Conv_inv_buf_t inv_buf;
eprintf(lml, ERR_FATAL, MSG_INTL(MSG_REL_PLTREF),
conv_reloc_amd64_type(R_AMD64_JUMP_SLOT, 0, &inv_buf),
EC_NATPTR(lmp), EC_XWORD(pltndx), EC_NATPTR(from));