diff options
Diffstat (limited to 'src/output/pe_output_export_symbols.c')
-rw-r--r-- | src/output/pe_output_export_symbols.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/output/pe_output_export_symbols.c b/src/output/pe_output_export_symbols.c index d47cb7a..ee48b0e 100644 --- a/src/output/pe_output_export_symbols.c +++ b/src/output/pe_output_export_symbols.c @@ -12,7 +12,6 @@ #include <perk/perk.h> #include <perk/perk_output.h> -#include "perk_output_impl.h" #include "perk_errinfo_impl.h" static int pretty_header(const struct pe_common_ctx * cctx, FILE * fout) @@ -37,7 +36,6 @@ int pe_output_export_symbols( const struct pe_image_meta * m, FILE * fout) { - FILE * ftmp; uint32_t offset; uint32_t * symrva; unsigned i; @@ -46,13 +44,11 @@ int pe_output_export_symbols( if (!m->hedata) return 0; - if (!(fout = pe_output_prolog(cctx,fout,&ftmp))) - return PERK_SYSTEM_ERROR(dctx); + if (!fout) + fout = stdout; if ((pretty_header(cctx,fout)) < 0) - return pe_output_epilog( - PERK_FILE_ERROR(dctx), - ftmp); + return PERK_FILE_ERROR(dctx); offset = m->hedata->virtual_addr - m->hedata->ptr_to_raw_data; symrva = (uint32_t *)((uintptr_t)m->image.addr + (m->edata.name_ptr_rva - offset)); @@ -62,9 +58,7 @@ int pe_output_export_symbols( cctx, (char *)((uintptr_t)m->image.addr + symrva[i] - offset), fout)) < 0) - return pe_output_epilog( - PERK_FILE_ERROR(dctx), - ftmp); + return PERK_FILE_ERROR(dctx); - return pe_output_epilog(0,ftmp); + return 0; } |