X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=execute.c;h=eaedbb481602db781c8120d524cc326910b0ddf9;hb=f8ff428db9bedbbee44177fb8c476e4bf8742958;hp=cc01c436db2329e19184a7d651b3fe5e06efe5aa;hpb=4ed3210133fb9f990c3d34fd04619867656c74e3;p=fips diff --git a/execute.c b/execute.c index cc01c43..eaedbb4 100644 --- a/execute.c +++ b/execute.c @@ -36,6 +36,7 @@ #include #include "execute.h" +#include "xmalloc.h" /* Terminate a string representing a filename at the final '/' to * eliminate the final filename component, (leaving only the directory @@ -85,7 +86,7 @@ get_bin_name (void *ctx) name_len = readlink (link, name, name_len - 1); if (name_len < 0) { - fprintf (stderr, "Failed to readlink %s: %s\n", link, + fprintf (stderr, "fips: Error: Failed to readlink %s: %s\n", link, strerror (errno)); exit (1); } @@ -175,31 +176,31 @@ elf_bits (const char *program) fd = open (absolute_program, O_RDONLY, 0); if (fd < 0) { - fprintf (stderr, "Failed to open %s: %s\n", absolute_program, + fprintf (stderr, "fips: Failed to open %s: %s\n", absolute_program, strerror (errno)); exit (1); } if (elf_version (EV_CURRENT ) == EV_NONE) { - fprintf (stderr, "Failed to initialize elf library: %s\n", + fprintf (stderr, "fips: Failed to initialize elf library: %s\n", elf_errmsg (-1)); exit (1); } elf = elf_begin (fd, ELF_C_READ, NULL); if (elf == NULL) { - fprintf (stderr, "Call to elf_begin on %s failed: %s\n", + fprintf (stderr, "fips: Call to elf_begin on %s failed: %s\n", absolute_program, elf_errmsg(-1)); exit (1); } if (elf_kind (elf) != ELF_K_ELF) { - fprintf (stderr, "Not an ELF object: %s\n", absolute_program); + fprintf (stderr, "fips: Not an ELF object: %s\n", absolute_program); exit (1); } if (gelf_getehdr (elf, &ehdr) == NULL) { - fprintf (stderr, "getehdr on %s failed: %s\n", + fprintf (stderr, "fips: getehdr on %s failed: %s\n", absolute_program, elf_errmsg (-1)); exit (1); } @@ -207,7 +208,7 @@ elf_bits (const char *program) class = gelf_getclass (elf); if (class == ELFCLASSNONE) { - fprintf (stderr, "getclass on %s failed: %s\n", + fprintf (stderr, "fips: getclass on %s failed: %s\n", absolute_program, elf_errmsg (-1)); exit (1); } @@ -294,11 +295,7 @@ execute_with_fips_preload (int argc, char * const argv[]) char **execvp_args; int i; - execvp_args = malloc((argc + 1) * sizeof(char *)); - if (execvp_args == NULL) { - fprintf (stderr, "Out of memory,\n"); - return 1; - } + execvp_args = xmalloc((argc + 1) * sizeof(char *)); for (i = 0; i < argc; i++) { execvp_args[i] = argv[i];