28 if (!
options->elf_checks_segments) {
63 if (!segment->is_valid) {
103 return bin->ehdr.e_phnum;
107 RZ_LOG_WARN(
"Failed to fetch the number of segments because there are no sections.\n");
113 RZ_LOG_WARN(
"Failed to fetch the number of segments from the section 0.\n");
142 RZ_LOG_WARN(
"Invalid program header (check array failed).\n");
151 return bin->segments;
RzList * sections(RzBinFile *bf)
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void count
#define rz_bin_elf_foreach_segments(bin, segment)
bool Elf_() rz_bin_elf_read_word_xword(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Word) *result)
bool Elf_() rz_bin_elf_add_off(Elf_(Off) *result, Elf_(Off) addr, Elf_(Off) value)
bool Elf_() rz_bin_elf_read_addr(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Addr) *result)
bool Elf_() rz_bin_elf_read_off(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Off) *result)
bool Elf_() rz_bin_elf_read_word(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Word) *result)
bool Elf_() rz_bin_elf_add_addr(Elf_(Addr) *result, Elf_(Addr) addr, Elf_(Addr) value)
bool Elf_() rz_bin_elf_check_array(RZ_NONNULL ELFOBJ *bin, Elf_(Off) offset, Elf_(Off) length, Elf_(Off) entry_size)
static size_t get_number_of_segments(ELFOBJ *bin, RzVector *sections)
static bool verify_phdr_entry(ELFOBJ *bin, RzBinObjectLoadOptions *options, Elf_(Phdr) *entry)
RZ_OWN RzVector *Elf_() rz_bin_elf_segments_new(RZ_NONNULL ELFOBJ *bin, RzVector *sections, RZ_NONNULL RzBinObjectLoadOptions *options)
static RzVector * get_segments_from_phdr(ELFOBJ *bin, size_t count, RzBinObjectLoadOptions *options)
bool Elf_() rz_bin_elf_has_segments(RZ_NONNULL ELFOBJ *bin)
static bool get_phdr_entry(ELFOBJ *bin, Elf_(Phdr) *segment, ut64 offset)
static bool get_elf_segment(ELFOBJ *bin, RzBinObjectLoadOptions *options, RzBinElfSegment *segment, ut64 offset, size_t pos)
RZ_BORROW RzBinElfSegment *Elf_() rz_bin_elf_get_segment_with_type(RZ_NONNULL ELFOBJ *bin, Elf_(Word) type)
static const char struct stat static buf struct stat static buf static vhangup int options
#define rz_return_val_if_fail(expr, val)
#define RZ_LOG_WARN(fmtstr,...)
static void * rz_vector_index_ptr(RzVector *vec, size_t index)
RZ_API void * rz_vector_push(RzVector *vec, void *x)
RZ_API void rz_vector_free(RzVector *vec)
RZ_API RzVector * rz_vector_new(size_t elem_size, RzVectorFree free, void *free_user)
static size_t rz_vector_len(const RzVector *vec)
ut64(WINAPI *w32_GetEnabledXStateFeatures)()