summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-06-23 19:18:44 +0200
committerLennart Poettering <lennart@poettering.net>2014-06-23 19:18:44 +0200
commitbde29068aa3815c88190a91e9867605a0aeaf9c4 (patch)
treeaf1e477045cafb1343ae05148050e1bc7e97bb73
parentd1d8e5d49f3149d03ceb94d1d2f6c14e7abccb6f (diff)
cryptsetup: don't add unit dependency on /dev/null devices when it is listed as password file
As special magic, don't create device dependencies for /dev/null. Of course, there might be similar devices we might want to include, but given that none of them really make sense to specify as password source there's really no point in checking for anything else here. https://bugs.freedesktop.org/show_bug.cgi?id=75816
-rw-r--r--src/cryptsetup/cryptsetup-generator.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
index 9530e44bd3..da16324599 100644
--- a/src/cryptsetup/cryptsetup-generator.c
+++ b/src/cryptsetup/cryptsetup-generator.c
@@ -29,6 +29,7 @@
#include "mkdir.h"
#include "strv.h"
#include "fileio.h"
+#include "path-util.h"
static const char *arg_dest = "/tmp";
static bool arg_enabled = true;
@@ -144,16 +145,19 @@ static int create_disk(
if (!uu)
return log_oom();
- if (is_device_path(uu)) {
- _cleanup_free_ char *dd;
+ if (!path_equal(uu, "/dev/null")) {
- dd = unit_name_from_path(uu, ".device");
- if (!dd)
- return log_oom();
+ if (is_device_path(uu)) {
+ _cleanup_free_ char *dd;
- fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
- } else
- fprintf(f, "RequiresMountsFor=%s\n", password);
+ dd = unit_name_from_path(uu, ".device");
+ if (!dd)
+ return log_oom();
+
+ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
+ } else
+ fprintf(f, "RequiresMountsFor=%s\n", password);
+ }
}
}