#include <string.h>
#include <errno.h>
+#include <sys/mman.h>
#include <libcryptsetup.h>
static bool opt_verify = false;
static usec_t opt_timeout = 0;
+/* Options Debian's crypttab knows we don't:
+
+ offset=
+ skip=
+ precheck=
+ check=
+ checkargs=
+ noearly=
+ loud=
+ keyscript=
+*/
+
static int parse_one_option(const char *option) {
assert(option);
goto finish;
}
- if (argc >= 5 && argv[4][0] && !streq(argv[4], "-")) {
+ if (argc >= 5 &&
+ argv[4][0] &&
+ !streq(argv[4], "-") &&
+ !streq(argv[4], "none")) {
if (!path_is_absolute(argv[4]))
log_error("Password file path %s is not absolute. Ignoring.", argv[4]);
if (argc >= 6 && argv[5][0] && !streq(argv[5], "-"))
parse_options(argv[5]);
+ /* A delicious drop of snake oil */
+ mlockall(MCL_FUTURE);
+
if ((k = crypt_init(&cd, argv[3]))) {
log_error("crypt_init() failed: %s", strerror(-k));
goto finish;