- if (arg_proc_cmdline_options) {
- /*
- If options are specified on the kernel commandline, let them override
- the ones from crypttab.
- */
- STRV_FOREACH(i, arg_proc_cmdline_options) {
- _cleanup_free_ char *proc_uuid = NULL, *proc_options = NULL;
- const char *p = *i;
-
- k = sscanf(p, "%m[0-9a-fA-F-]=%ms", &proc_uuid, &proc_options);
- if (k == 2 && streq(proc_uuid, device + 5)) {
- if (options)
- free(options);
- options = strdup(p);
- if (!proc_options)
- return log_oom();
+ /*
+ If options are specified on the kernel commandline, let them override
+ the ones from crypttab.
+ */
+ STRV_FOREACH(i, arg_options) {
+ _cleanup_free_ char *proc_uuid = NULL, *proc_options = NULL;
+ const char *p = *i;
+
+ k = sscanf(p, "%m[0-9a-fA-F-]=%ms", &proc_uuid, &proc_options);
+ if (k == 2 && streq(proc_uuid, device + 5)) {
+ free(options);
+ options = strdup(p);
+ if (!proc_options) {
+ log_oom();
+ goto cleanup;