X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fbootchart%2Fbootchart.c;h=9f72d98126c1b4d8e02934b0e6fd0932835ea1ea;hb=4ef0809c22a7d15bae3865d44596ff6e3cdaf1cb;hp=27fd505929f96ec1c0579f52968d7f76f95d3f91;hpb=9f6445e34a57c270f013c9416c123e56261553dd;p=elogind.git diff --git a/src/bootchart/bootchart.c b/src/bootchart/bootchart.c index 27fd50592..9f72d9812 100644 --- a/src/bootchart/bootchart.c +++ b/src/bootchart/bootchart.c @@ -220,7 +220,6 @@ static int parse_args(int argc, char *argv[]) { fprintf(stderr, " --help, -h Display this message\n"); fprintf(stderr, "See bootchart.conf for more information.\n"); exit (EXIT_SUCCESS); - break; default: break; } @@ -259,7 +258,7 @@ static void do_journal_append(char *file) { memcpy(p, "BOOTCHART=", 10); - f = open(file, O_RDONLY); + f = open(file, O_RDONLY|O_CLOEXEC); if (f < 0) { log_error("Failed to read bootchart data: %m"); return; @@ -318,10 +317,10 @@ int main(int argc, char *argv[]) { (void) setrlimit(RLIMIT_NOFILE, &rlim); /* start with empty ps LL */ - ps_first = calloc(1, sizeof(struct ps_struct)); + ps_first = new0(struct ps_struct, 1); if (!ps_first) { - perror("calloc(ps_struct)"); - exit(EXIT_FAILURE); + log_oom(); + return EXIT_FAILURE; } /* handle TERM/INT nicely */ @@ -356,11 +355,11 @@ int main(int argc, char *argv[]) { t = time(NULL); strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); - of = fopen(output_file, "w"); + of = fopen(output_file, "we"); } if (sysfd < 0) - sysfd = open("/sys", O_RDONLY); + sysfd = open("/sys", O_RDONLY|O_CLOEXEC); if (!build) parse_env_file("/etc/os-release", NEWLINE, @@ -397,8 +396,8 @@ int main(int argc, char *argv[]) { /* caught signal, probably HUP! */ break; } - perror("nanosleep()"); - exit (EXIT_FAILURE); + log_error("nanosleep() failed: %m"); + exit(EXIT_FAILURE); } } else { overrun++; @@ -424,7 +423,7 @@ int main(int argc, char *argv[]) { t = time(NULL); strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); - of = fopen(output_file, "w"); + of = fopen(output_file, "we"); } if (!of) {