From: Lennart Poettering Date: Mon, 23 Oct 2023 20:17:46 +0000 (+0200) Subject: cryptenroll: merge two if checks with same condition X-Git-Tag: v255-rc1~157^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F29685%2Fhead;p=thirdparty%2Fsystemd.git cryptenroll: merge two if checks with same condition This removes a duplicate condition check by adding a common surrounding if block. This also change a confusing if check: "(X && Y) && Z" to simply "X && Y && Z" --- diff --git a/src/cryptenroll/cryptenroll.c b/src/cryptenroll/cryptenroll.c index 4086f7f9a77..a3332f5e7d1 100644 --- a/src/cryptenroll/cryptenroll.c +++ b/src/cryptenroll/cryptenroll.c @@ -467,16 +467,18 @@ static int parse_argv(int argc, char *argv[]) { } } - if ((arg_enroll_type == ENROLL_FIDO2 && arg_unlock_type == UNLOCK_FIDO2) - && !(arg_fido2_device && arg_unlock_fido2_device)) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "When both enrolling and unlocking with FIDO2 tokens, automatic discovery is unsupported. " - "Please specify device paths for enrolling and unlocking respectively."); + if (arg_enroll_type == ENROLL_FIDO2) { - if (arg_enroll_type == ENROLL_FIDO2 && !arg_fido2_device) { - r = fido2_find_device_auto(&arg_fido2_device); - if (r < 0) - return r; + if (arg_unlock_type == UNLOCK_FIDO2 && !(arg_fido2_device && arg_unlock_fido2_device)) + return log_error_errno(SYNTHETIC_ERRNO(EINVAL), + "When both enrolling and unlocking with FIDO2 tokens, automatic discovery is unsupported. " + "Please specify device paths for enrolling and unlocking respectively."); + + if (!arg_fido2_device) { + r = fido2_find_device_auto(&arg_fido2_device); + if (r < 0) + return r; + } } if (optind >= argc)