aboutsummaryrefslogtreecommitdiff
path: root/libexec/rtld-elf/rtld.c
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2018-08-02 07:43:28 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2018-08-02 07:43:28 +0000
commit711a4538f87f46e595287e9c292e0ad70a1d2129 (patch)
tree155fc40bf531a0844c755e86c738763650361c49 /libexec/rtld-elf/rtld.c
parent17e2c2661b2dce496ed35c3a1a3f616618b9ed07 (diff)
Notes
Diffstat (limited to 'libexec/rtld-elf/rtld.c')
-rw-r--r--libexec/rtld-elf/rtld.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 75bb6ca8d53d..43240568b3e8 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -408,8 +408,8 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp)
phdr = (const Elf_Phdr *)aux_info[AT_PHDR]->a_un.a_ptr;
if (phdr == obj_rtld.phdr) {
if (!trust) {
- rtld_printf("Tainted process refusing to run binary %s\n",
- argv0);
+ _rtld_error("Tainted process refusing to run binary %s",
+ argv0);
rtld_die();
}
dbg("opening main program in direct exec mode");
@@ -420,7 +420,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp)
if (!explicit_fd)
fd = open_binary_fd(argv0, search_in_path);
if (fstat(fd, &st) == -1) {
- _rtld_error("failed to fstat FD %d (%s): %s", fd,
+ _rtld_error("Failed to fstat FD %d (%s): %s", fd,
explicit_fd ? "user-provided descriptor" : argv0,
rtld_strerror(errno));
rtld_die();
@@ -447,8 +447,8 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp)
dir_enable = true;
}
if (!dir_enable) {
- rtld_printf("No execute permission for binary %s\n",
- argv0);
+ _rtld_error("No execute permission for binary %s",
+ argv0);
rtld_die();
}
@@ -477,7 +477,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp)
break;
}
} else {
- rtld_printf("no binary\n");
+ _rtld_error("No binary");
rtld_die();
}
}
@@ -962,6 +962,7 @@ rtld_die(void)
if (msg == NULL)
msg = "Fatal error";
+ rtld_fdputstr(STDERR_FILENO, _BASENAME_RTLD ": ");
rtld_fdputstr(STDERR_FILENO, msg);
rtld_fdputchar(STDERR_FILENO, '\n');
_exit(1);
@@ -2441,7 +2442,7 @@ do_load_object(int fd, const char *name, char *path, struct stat *sbp,
return NULL;
}
if (fs.f_flags & MNT_NOEXEC) {
- _rtld_error("Cannot execute objects on %s\n", fs.f_mntonname);
+ _rtld_error("Cannot execute objects on %s", fs.f_mntonname);
return NULL;
}
}
@@ -5317,12 +5318,12 @@ open_binary_fd(const char *argv0, bool search_in_path)
if (search_in_path && strchr(argv0, '/') == NULL) {
pathenv = getenv("PATH");
if (pathenv == NULL) {
- rtld_printf("-p and no PATH environment variable\n");
+ _rtld_error("-p and no PATH environment variable");
rtld_die();
}
pathenv = strdup(pathenv);
if (pathenv == NULL) {
- rtld_printf("Cannot allocate memory\n");
+ _rtld_error("Cannot allocate memory");
rtld_die();
}
fd = -1;
@@ -5348,8 +5349,7 @@ open_binary_fd(const char *argv0, bool search_in_path)
}
if (fd == -1) {
- rtld_printf("Opening %s: %s\n", argv0,
- rtld_strerror(errno));
+ _rtld_error("Cannot open %s: %s", argv0, rtld_strerror(errno));
rtld_die();
}
return (fd);
@@ -5393,7 +5393,7 @@ parse_args(char* argv[], int argc, bool *use_pathp, int *fdp)
opt = arg[j];
if (opt == 'h') {
print_usage(argv[0]);
- rtld_die();
+ _exit(0);
} else if (opt == 'f') {
/*
* -f XX can be used to specify a descriptor for the
@@ -5403,13 +5403,13 @@ parse_args(char* argv[], int argc, bool *use_pathp, int *fdp)
*/
if (j != arglen - 1) {
/* -f must be the last option in, e.g., -abcf */
- _rtld_error("invalid options: %s", arg);
+ _rtld_error("Invalid options: %s", arg);
rtld_die();
}
i++;
fd = parse_integer(argv[i]);
if (fd == -1) {
- _rtld_error("invalid file descriptor: '%s'",
+ _rtld_error("Invalid file descriptor: '%s'",
argv[i]);
rtld_die();
}
@@ -5418,7 +5418,7 @@ parse_args(char* argv[], int argc, bool *use_pathp, int *fdp)
} else if (opt == 'p') {
*use_pathp = true;
} else {
- rtld_printf("invalid argument: '%s'\n", arg);
+ _rtld_error("Invalid argument: '%s'", arg);
print_usage(argv[0]);
rtld_die();
}