diff options
-rw-r--r-- | include/perk/perk_meta.h | 4 | ||||
-rw-r--r-- | src/logic/pe_image_meta_data.c | 6 | ||||
-rw-r--r-- | src/output/pe_output_image_sections.c | 8 | ||||
-rw-r--r-- | src/output/pe_output_image_symbols.c | 4 | ||||
-rw-r--r-- | src/reader/pe_read_section_header.c | 6 |
5 files changed, 10 insertions, 18 deletions
diff --git a/include/perk/perk_meta.h b/include/perk/perk_meta.h index f5f162f..5a4136f 100644 --- a/include/perk/perk_meta.h +++ b/include/perk/perk_meta.h @@ -182,8 +182,7 @@ struct pe_meta_opt_hdr { /* section header */ struct pe_meta_sec_hdr { - char sh_name[16]; - char * sh_long_name; + char * sh_name; uint32_t sh_virtual_size; uint32_t sh_virtual_addr; uint32_t sh_size_of_raw_data; @@ -193,6 +192,7 @@ struct pe_meta_sec_hdr { uint16_t sh_num_of_relocs; uint16_t sh_num_of_line_nums; uint32_t sh_characteristics; + char sh_name_buf[16]; }; diff --git a/src/logic/pe_image_meta_data.c b/src/logic/pe_image_meta_data.c index 9846818..b2255d7 100644 --- a/src/logic/pe_image_meta_data.c +++ b/src/logic/pe_image_meta_data.c @@ -470,10 +470,10 @@ int pe_meta_get_image_meta( for (i=0; i<m->m_coff.cfh_num_of_sections; i++) { pe_read_section_header(&m->r_sectbl[i],&m->m_sectbl[i]); - if (m->m_sectbl[i].sh_name[0] == '/') - if ((l = strtol(&m->m_sectbl[i].sh_name[1],0,10)) > 0) + if (m->m_sectbl[i].sh_name_buf[0] == '/') + if ((l = strtol(&m->m_sectbl[i].sh_name_buf[1],0,10)) > 0) if (l < m->m_coff.cfh_size_of_str_tbl) - m->m_sectbl[i].sh_long_name = base + m->m_coff.cfh_ptr_to_str_tbl + l; + m->m_sectbl[i].sh_name = base + m->m_coff.cfh_ptr_to_str_tbl + l; } /* .edata */ diff --git a/src/output/pe_output_image_sections.c b/src/output/pe_output_image_sections.c index 69b49d5..5fb2393 100644 --- a/src/output/pe_output_image_sections.c +++ b/src/output/pe_output_image_sections.c @@ -30,13 +30,7 @@ int pe_output_image_sections( } for (i=0; i<meta->m_coff.cfh_num_of_sections; i++) - if (pe_dprintf( - fdout, - "%s%s\n", - dash, - meta->m_sectbl[i].sh_long_name - ? meta->m_sectbl[i].sh_long_name - : meta->m_sectbl[i].sh_name) < 0) + if (pe_dprintf(fdout,"%s%s\n",dash,meta->m_sectbl[i].sh_name) < 0) return PERK_FILE_ERROR(dctx); return 0; diff --git a/src/output/pe_output_image_symbols.c b/src/output/pe_output_image_symbols.c index c07221d..8c63fc4 100644 --- a/src/output/pe_output_image_symbols.c +++ b/src/output/pe_output_image_symbols.c @@ -146,9 +146,7 @@ static int pe_output_symbol_records_yaml( default: sechdr = &meta->m_sectbl[symrec->cs_section_number - 1]; - secname = sechdr->sh_long_name - ? sechdr->sh_long_name - : sechdr->sh_name; + secname = sechdr->sh_name; } typedesc[0] = pe_sym_type_desc_msb[(symrec->cs_type >> 4) & 0x03]; diff --git a/src/reader/pe_read_section_header.c b/src/reader/pe_read_section_header.c index 4a2c7f5..ce62b82 100644 --- a/src/reader/pe_read_section_header.c +++ b/src/reader/pe_read_section_header.c @@ -15,10 +15,10 @@ int pe_read_section_header(const struct pe_raw_sec_hdr * p, struct pe_meta_sec_hdr * m) { /* name: meta struct conveniently contains null termination */ - memset(m,0,sizeof(m->sh_name)); - memcpy(m,p,sizeof(p->sh_name)); + memset(m->sh_name_buf,0,sizeof(m->sh_name_buf)); + memcpy(m->sh_name_buf,p,sizeof(p->sh_name)); - m->sh_long_name = 0; + m->sh_name = m->sh_name_buf; m->sh_virtual_size = pe_read_long(p->sh_virtual_size); m->sh_virtual_addr = pe_read_long(p->sh_virtual_addr); m->sh_size_of_raw_data = pe_read_long(p->sh_size_of_raw_data); |