diff options
author | Ivan Kruglov <mail@ikruglov.com> | 2024-11-06 11:14:01 +0100 |
---|---|---|
committer | Ivan Kruglov <mail@ikruglov.com> | 2024-11-06 11:18:38 +0100 |
commit | 7022563b5b4dd4ec8cf86f8eac0b59acc8c68750 (patch) | |
tree | 489acba9abd4a5f5611fd85f742ed7f395fb2521 /src/shared/elf-util.c | |
parent | use report_errno_and_exit() in src/shared/dissect-image.c (diff) | |
download | systemd-7022563b5b4dd4ec8cf86f8eac0b59acc8c68750.tar.xz systemd-7022563b5b4dd4ec8cf86f8eac0b59acc8c68750.zip |
use report_errno_and_exit() in src/shared/elf-util.c
Diffstat (limited to '')
-rw-r--r-- | src/shared/elf-util.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/shared/elf-util.c b/src/shared/elf-util.c index 69439b61ef..a3ff1fd3fb 100644 --- a/src/shared/elf-util.c +++ b/src/shared/elf-util.c @@ -827,12 +827,12 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork if (fork_disable_dump) { r = RET_NERRNO(prctl(PR_SET_DUMPABLE, 0)); if (r < 0) - goto child_fail; + report_errno_and_exit(error_pipe[1], r); } r = parse_elf(fd, executable, root, ret ? &buf : NULL, ret_package_metadata ? &package_metadata : NULL); if (r < 0) - goto child_fail; + report_errno_and_exit(error_pipe[1], r); if (buf) { size_t len = strlen(buf); @@ -853,7 +853,7 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork if (r == -EAGAIN) log_warning("Write failed, backtrace will be truncated."); else if (r < 0) - goto child_fail; + report_errno_and_exit(error_pipe[1], r); return_pipe[1] = safe_close(return_pipe[1]); } @@ -866,10 +866,8 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork (void) fcntl(json_pipe[1], F_SETPIPE_SZ, COREDUMP_PIPE_MAX); json_out = take_fdopen(&json_pipe[1], "w"); - if (!json_out) { - r = -errno; - goto child_fail; - } + if (!json_out) + report_errno_and_exit(error_pipe[1], -errno); r = sd_json_variant_dump(package_metadata, SD_JSON_FORMAT_FLUSH, json_out, NULL); if (r < 0) @@ -877,10 +875,6 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork } _exit(EXIT_SUCCESS); - - child_fail: - (void) write(error_pipe[1], &r, sizeof(r)); - _exit(EXIT_FAILURE); } error_pipe[1] = safe_close(error_pipe[1]); |