X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcryptsetup%2Fcryptsetup.c;h=769c3e4f3165fa198c04f6a70ee7c95e06af75a3;hb=4b93637fd7dddb0a1518f35171998b2c7cd5c5bd;hp=22b5eead72d3e804557e602090f86cb781734527;hpb=404dac4d96f4aaf66026e8b412c4b67e8773cffa;p=elogind.git diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c index 22b5eead7..769c3e4f3 100644 --- a/src/cryptsetup/cryptsetup.c +++ b/src/cryptsetup/cryptsetup.c @@ -74,7 +74,7 @@ static int parse_one_option(const char *option) { t = strdup(option+7); if (!t) - return -ENOMEM; + return log_oom(); free(opt_cipher); opt_cipher = t; @@ -89,9 +89,10 @@ static int parse_one_option(const char *option) { } else if (startswith(option, "tcrypt-keyfile=")) { opt_type = CRYPT_TCRYPT; - if (path_is_absolute(option+15)) - opt_tcrypt_keyfiles = strv_append(opt_tcrypt_keyfiles, strdup(option+15)); - else + if (path_is_absolute(option+15)) { + if (strv_extend(&opt_tcrypt_keyfiles, option + 15) < 0) + return log_oom(); + } else log_error("Key file path '%s' is not absolute. Ignoring.", option+15); } else if (startswith(option, "keyfile-size=")) { @@ -113,7 +114,7 @@ static int parse_one_option(const char *option) { t = strdup(option+5); if (!t) - return -ENOMEM; + return log_oom(); free(opt_hash); opt_hash = t;