diff --git a/src/fsck.c b/src/fsck.c index 0d3e35d..afa3237 100644 --- a/src/fsck.c +++ b/src/fsck.c @@ -423,11 +423,16 @@ parse_opts ( } SUBOPT_OPT_FALLBACK() { char *opt = SUBOPT_STR; - if (opt[0] == '@') { - bookmarkfs_opts_add(&info->backend_opts, opt + 1); - } else if (opt[0] == '%') { - bookmarkfs_opts_add(&info->handler_opts, opt + 1); - } else { + switch (*(opt++)) { + case '@': + bookmarkfs_opts_add(&info->backend_opts, opt); + break; + + case '%': + bookmarkfs_opts_add(&info->handler_opts, opt); + break; + + default: return SUBOPT_ERR_BAD_KEY(); } } diff --git a/src/fsck_handler_simple.c b/src/fsck_handler_simple.c index d1db4bd..2513d1f 100644 --- a/src/fsck_handler_simple.c +++ b/src/fsck_handler_simple.c @@ -309,8 +309,9 @@ parse_opts ( } BACKEND_OPT_KEY("translit") { BACKEND_OPT_VAL_START - if (1 == strlen(BACKEND_OPT_VAL_STR)) { - translit = BACKEND_OPT_VAL_STR[0]; + char const *str = BACKEND_OPT_VAL_STR; + if (str[0] != '\0' && str[0] != '/' && str[1] == '\0') { + translit = str[0]; } BACKEND_OPT_VAL_END }