git: 8d91740f968a - stable/13 - strip/objcopy: handle empty file as unknown
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 08 Nov 2021 13:54:57 UTC
The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=8d91740f968ad15911853a82c79bb5ad1d414375 commit 8d91740f968ad15911853a82c79bb5ad1d414375 Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2021-10-25 21:25:26 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2021-11-08 13:54:23 +0000 strip/objcopy: handle empty file as unknown Previously strip reported a somewhat cryptic error for empty files: strip: elf_begin() failed: Invalid argument Add a special case to treat empty files as with an unknown file format. This is consistent with llvm-strip. GNU strip produces no output which does not seem like useful behaviour (but it does exit with status 1). Reported by: andrew Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D32648 (cherry picked from commit 179219ea046f46927d6478d43431e8b541703539) --- contrib/elftoolchain/elfcopy/main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/elftoolchain/elfcopy/main.c b/contrib/elftoolchain/elfcopy/main.c index 964d3358de60..264e702ef5af 100644 --- a/contrib/elftoolchain/elfcopy/main.c +++ b/contrib/elftoolchain/elfcopy/main.c @@ -738,6 +738,8 @@ create_file(struct elfcopy *ecp, const char *src, const char *dst) if ((ecp->ein = elf_begin(ifd, ELF_C_READ, NULL)) == NULL) { cleanup_tempfile(tempfile); + if (fstat(ifd, &sb) == 0 && sb.st_size == 0) + errx(EXIT_FAILURE, "file format not recognized"); errx(EXIT_FAILURE, "elf_begin() failed: %s", elf_errmsg(-1)); }