|
@@ -81,14 +81,18 @@ FILE *prepare_output(const char *dirname)
|
|
|
|
|
|
len = strlen(dirname) + 30;
|
|
|
filename = malloc(sizeof(char) * len);
|
|
|
+ if (!filename) {
|
|
|
+ perror("malloc");
|
|
|
+ goto out_dir;
|
|
|
+ }
|
|
|
|
|
|
if (uname(&sysdata) == 0) {
|
|
|
len += strlen(sysdata.nodename) + strlen(sysdata.release);
|
|
|
filename = realloc(filename, sizeof(char) * len);
|
|
|
|
|
|
- if (filename == NULL) {
|
|
|
+ if (!filename) {
|
|
|
perror("realloc");
|
|
|
- return NULL;
|
|
|
+ goto out_dir;
|
|
|
}
|
|
|
|
|
|
snprintf(filename, len - 1, "%s/benchmark_%s_%s_%li.log",
|
|
@@ -104,12 +108,16 @@ FILE *prepare_output(const char *dirname)
|
|
|
if (output == NULL) {
|
|
|
perror("fopen");
|
|
|
fprintf(stderr, "error: unable to open logfile\n");
|
|
|
+ goto out;
|
|
|
}
|
|
|
|
|
|
fprintf(stdout, "Logfile: %s\n", filename);
|
|
|
|
|
|
- free(filename);
|
|
|
fprintf(output, "#round load sleep performance powersave percentage\n");
|
|
|
+out:
|
|
|
+ free(filename);
|
|
|
+out_dir:
|
|
|
+ closedir(dir);
|
|
|
return output;
|
|
|
}
|
|
|
|