dcavalca / rpms / systemd

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