summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnita Zhang <the.anitazha@gmail.com>2019-11-04 22:57:12 -0800
committerGitHub <noreply@github.com>2019-11-04 22:57:12 -0800
commitd36b573ef7a5a872cc5a4079cb1961e0d066a7b2 (patch)
treeff700526e0f927b016b1413c2d6eb6e4cbdf6945
parentd1559793df555212271e490a4a72f55826caf5b4 (diff)
parenta4a55e9ace3e97ee35c89bb2964330cba69e4edb (diff)
downloadsystemd-d36b573ef7a5a872cc5a4079cb1961e0d066a7b2.tar.gz
Merge pull request #13935 from poettering/bootctl-random-seed-mkdir
bootctl: create leading dirs when "bootctl random-seed" is called if …
-rw-r--r--src/boot/bootctl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c
index 72c2115d89..d8e8d8ce40 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();