summaryrefslogtreecommitdiffhomepage
path: root/src/logic/pe_image_meta_data.c
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2025-06-12 17:24:50 +0000
committermidipix <writeonce@midipix.org>2025-06-12 17:37:10 +0000
commit60ec6878b0346397edeeafb7b9abe6ed3a057f16 (patch)
tree4df26d679dc1b8001a06d66069034d662b290f2b /src/logic/pe_image_meta_data.c
parenta03a54dd8c987741a1c3f63b7de18f335ac20982 (diff)
downloadperk-60ec6878b0346397edeeafb7b9abe6ed3a057f16.tar.bz2
perk-60ec6878b0346397edeeafb7b9abe6ed3a057f16.tar.xz
struct pe_image_meta: added and integrated the .m_symvec_symidx member.
Diffstat (limited to 'src/logic/pe_image_meta_data.c')
-rw-r--r--src/logic/pe_image_meta_data.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/logic/pe_image_meta_data.c b/src/logic/pe_image_meta_data.c
index b2255d7..b789100 100644
--- a/src/logic/pe_image_meta_data.c
+++ b/src/logic/pe_image_meta_data.c
@@ -28,6 +28,7 @@ static int pe_free_image_meta_impl(struct pe_image_meta * meta, int ret)
free(meta->m_symvec_crc32);
free(meta->m_symvec_crc64);
+ free(meta->m_symvec_symidx);
free(meta->m_idata);
free(meta->m_symtbl);
@@ -404,11 +405,17 @@ int pe_meta_get_image_meta(
}
- if ((nrecs = m->m_coff.cfh_size_of_sym_tbl/sizeof(struct pe_raw_coff_symbol)))
+ if ((nrecs = m->m_coff.cfh_size_of_sym_tbl/sizeof(struct pe_raw_coff_symbol))) {
if (!(m->m_symtbl = calloc(nrecs+1,sizeof(struct pe_meta_coff_symbol))))
return PERK_SYSTEM_ERROR(dctx);
+ if (!(m->m_symvec_symidx = calloc(nrecs,sizeof(struct pe_meta_coff_symbol *))))
+ return PERK_SYSTEM_ERROR(dctx);
+ }
+
for (i=0,symrec=m->m_symtbl; i<nrecs; i++,symrec++) {
+ m->m_symvec_symidx[i] = symrec;
+
pe_read_coff_symbol(
&m->r_symtbl[i],symrec,
&m->m_coff,base);