summaryrefslogtreecommitdiff
path: root/src/cryptsetup/cryptsetup-generator.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-08-01 08:15:43 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-08-01 09:49:24 +0200
commitfef716b28be6e866b8afe995805d5ebe2af6bbfa (patch)
tree06710a966c80e26e3a02744ff41e1ed0ff5a2db0 /src/cryptsetup/cryptsetup-generator.c
parent5d2100dc4c32abbce4109e75cbfbbef6e1b2b7b1 (diff)
downloadsystemd-fef716b28be6e866b8afe995805d5ebe2af6bbfa.tar.gz
cryptsetup: don't assert on variable which is optional
https://github.com/systemd/systemd/commit/50d2eba27b9bfc77ef6b40e5721713846815418b#commitcomment-34519739 In add_crypttab_devices() split_keyspec is called on the keyfile argument, which may be NULL.
Diffstat (limited to 'src/cryptsetup/cryptsetup-generator.c')
-rw-r--r--src/cryptsetup/cryptsetup-generator.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
index 8448314394..4815ded753 100644
--- a/src/cryptsetup/cryptsetup-generator.c
+++ b/src/cryptsetup/cryptsetup-generator.c
@@ -50,10 +50,14 @@ static int split_keyspec(const char *keyspec, char **ret_keyfile, char **ret_key
_cleanup_free_ char *keyfile = NULL, *keydev = NULL;
const char *c;
- assert(keyspec);
assert(ret_keyfile);
assert(ret_keydev);
+ if (!keyspec) {
+ *ret_keyfile = *ret_keydev = NULL;
+ return 0;
+ }
+
c = strrchr(keyspec, ':');
if (c) {
keyfile = strndup(keyspec, c-keyspec);
@@ -567,7 +571,7 @@ static int add_crypttab_devices(void) {
}
for (;;) {
- _cleanup_free_ char *line = NULL, *name = NULL, *device = NULL, *keydev = NULL, *keyfile = NULL, *keyspec = NULL, *options = NULL;
+ _cleanup_free_ char *line = NULL, *name = NULL, *device = NULL, *keyspec = NULL, *options = NULL, *keyfile = NULL, *keydev = NULL;
crypto_device *d = NULL;
char *l, *uuid;
int k;