dst_sym.st_size = src_sym.st_size; \
} while (0)
-/* Both 32bit and 64bit use the same 1 byte field for type. (See elf.h) */
-#define ELF_ST_TYPE(val) ELF32_ST_TYPE(val)
+#ifndef ELFCLASSNUM
+#define ELFCLASSNUM 3
+#endif
+
+#ifndef ELFDATANUM
+#define ELFDATANUM 3
+#endif
+
+#ifndef EV_NUM
+#define EV_NUM 2
+#endif
struct lttng_elf_ehdr {
uint16_t e_type;
}
/* Get the number of symbol in the table for the iteration. */
+ if (symtab_hdr.sh_entsize == 0) {
+ DBG("Invalid ELF string table entry size.");
+ ret = LTTNG_ERR_ELF_PARSING;
+ goto free_string_table_data;
+ }
+
sym_count = symtab_hdr.sh_size / symtab_hdr.sh_entsize;
/* Loop over all symbol. */
/*
* If the current symbol is not a function; skip to the next symbol.
*/
- if (ELF_ST_TYPE(curr_sym.st_info) != STT_FUNC) {
+ /* Both 32bit and 64bit use the same 1 byte field for type. (See elf.h) */
+ if (ELF32_ST_TYPE(curr_sym.st_info) != STT_FUNC) {
continue;
}