info->brk = vaddr_em;
}
} else if (eppnt->p_type == PT_INTERP && pinterp_name) {
- char *interp_name;
+ g_autofree char *interp_name = NULL;
if (*pinterp_name) {
errmsg = "Multiple PT_INTERP entries";
goto exit_errmsg;
}
- interp_name = malloc(eppnt->p_filesz);
+ interp_name = g_malloc(eppnt->p_filesz);
if (!interp_name) {
goto exit_perror;
}
errmsg = "Invalid PT_INTERP entry";
goto exit_errmsg;
}
- *pinterp_name = interp_name;
+ *pinterp_name = g_steal_pointer(&interp_name);
#ifdef TARGET_MIPS
} else if (eppnt->p_type == PT_MIPS_ABIFLAGS) {
Mips_elf_abiflags_v0 abiflags;
if (elf_interpreter) {
info->load_bias = interp_info.load_bias;
info->entry = interp_info.entry;
- free(elf_interpreter);
+ g_free(elf_interpreter);
}
#ifdef USE_ELF_CORE_DUMP