From f952610919261d2d83ad69d11b071a3b64f7af6c Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 30 Apr 2024 04:09:14 -0400 Subject: xexamine: report errors. --- xex.c | 2 +- xexamine.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/xex.c b/xex.c index dfdee78..c887ecb 100644 --- a/xex.c +++ b/xex.c @@ -173,7 +173,7 @@ int xex_fread_seg_data(xex_segment *seg, FILE *file) { return 1; } - if(ferror(file)) { + if(res < 0 || ferror(file)) { xex_errno = XERR_SYSCALL; } else { /* EOF or short read */ diff --git a/xexamine.c b/xexamine.c index ec1e822..64ecb8b 100644 --- a/xexamine.c +++ b/xexamine.c @@ -358,11 +358,6 @@ int main(int argc, char **argv) { while(xex_fread_seg(&seg, f)) { segcount++; - xex_check_seg(&seg); - if(xex_errno) { - xex_perror(filename); - } - crc = 0; crc32(seg.object, seg.len, &crc); @@ -391,6 +386,11 @@ int main(int argc, char **argv) { offset = ftell(f); } + if(xex_errno) { + fprintf(stderr, SELF ": %s: %s\n", + filename, xex_strerror(xex_errno)); + } + if(only_segment && (segcount < only_segment)) { fprintf(stderr, SELF ": can't show segment %d, only %d segments in file.\n", only_segment, segcount); return 1; -- cgit v1.2.3