#include <inttypes.h>
#include <libgen.h>
#include <math.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
elf_file = elf_begin(bt_fd_cache_handle_get_fd(bin->elf_handle),
ELF_C_READ, NULL);
if (!elf_file) {
- BT_COMP_LOGE("elf_begin failed: %s", elf_errmsg(-1));
+ BT_COMP_LOGE_APPEND_CAUSE(bin->self_comp,
+ "elf_begin failed: %s", elf_errmsg(-1));
goto error;
}
bin->elf_file = elf_file;
if (elf_kind(elf_file) != ELF_K_ELF) {
- BT_COMP_LOGE("Error: %s is not an ELF object", bin->elf_path);
+ BT_COMP_LOGE_APPEND_CAUSE(bin->self_comp,
+ "Error: %s is not an ELF object", bin->elf_path);
goto error;
}
*
* @returns 1 on if the build id of stored in `bin` matches
* the build id of the ondisk file.
- * 0 on if they are different or an error occured.
+ * 0 on if they are different or an error occurred.
*/
static
int is_build_id_matching(struct bin_info *bin)
goto error;
}
+ /* Free any previously set build id. */
+ g_free(bin->build_id);
+
/* Set the build id. */
bin->build_id = g_new0(uint8_t, build_id_len);
if (!bin->build_id) {