From 0628a6f0ffc097c0061d7d03e39c912eba91d1e3 Mon Sep 17 00:00:00 2001 From: Thomas Hindoe Paaboel Andersen Date: Fri, 22 May 2015 23:40:19 +0200 Subject: [PATCH] bootctl: ferror must be called before FILE is closed Otherwise it will not show any error stored (cherry picked from commit 717442507b4b11aa1d76810d7b12b15948c7a250) --- src/boot/bootctl.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index 3a007578dc..ba534b172e 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -884,7 +884,7 @@ static int install_loader_config(const char *esp_path) { char *p; char line[64]; char *machine = NULL; - FILE *f; + _cleanup_fclose_ FILE *f = NULL, *g = NULL; f = fopen("/etc/machine-id", "re"); if (!f) @@ -899,18 +899,16 @@ static int install_loader_config(const char *esp_path) { if (strlen(line) == 32) machine = line; } - fclose(f); if (!machine) return -ESRCH; p = strjoina(esp_path, "/loader/loader.conf"); - f = fopen(p, "wxe"); - if (f) { - fprintf(f, "#timeout 3\n"); - fprintf(f, "default %s-*\n", machine); - fclose(f); - if (ferror(f)) + g = fopen(p, "wxe"); + if (g) { + fprintf(g, "#timeout 3\n"); + fprintf(g, "default %s-*\n", machine); + if (ferror(g)) return log_error_errno(EIO, "Failed to write \"%s\": %m", p); } @@ -926,7 +924,7 @@ static int help(void) { " --path=PATH Path to the EFI System Partition (ESP)\n" " --no-variables Don't touch EFI variables\n" "\n" - "Comands:\n" + "Commands:\n" " status Show status of installed systemd-boot and EFI variables\n" " install Install systemd-boot to the ESP and EFI variables\n" " update Update systemd-boot in the ESP and EFI variables\n"