From a4a55e9ace3e97ee35c89bb2964330cba69e4edb Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 4 Nov 2019 14:25:57 +0100 Subject: [PATCH] bootctl: create leading dirs when "bootctl random-seed" is called if needed Prompted by: #13603 --- src/boot/bootctl.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index 72c2115d89e..d8e8d8ce409 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -27,6 +27,7 @@ #include "fs-util.h" #include "locale-util.h" #include "main-func.h" +#include "mkdir.h" #include "pager.h" #include "parse-util.h" #include "pretty-print.h" @@ -1364,6 +1365,13 @@ static int install_random_seed(const char *esp) { if (r < 0) return log_error_errno(r, "Failed to acquire random seed: %m"); + /* Normally create_subdirs() should already have created everything we need, but in case "bootctl + * random-seed" is called we want to just create the minimum we need for it, and not the full + * list. */ + r = mkdir_parents(path, 0755); + if (r < 0) + return log_error_errno(r, "Failed to create parent directory for %s: %m", path); + r = tempfn_random(path, "bootctl", &tmp); if (r < 0) return log_oom(); -- 2.39.2