Re: [PATCH v2 02/10] fs/ntfs3: Add initialization of super block

From: Pali Rohár
Date: Sun Aug 23 2020 - 05:55:13 EST


On Friday 21 August 2020 16:25:03 Konstantin Komarov wrote:
> + case Opt_nls:
> + match_strlcpy(nls_name, &args[0], sizeof(nls_name));
> + break;
> +
> + /* unknown option */
> + default:
> + if (!silent)
> + ntfs_error(
> + sb,
> + "Unrecognized mount option \"%s\" or missing value",
> + p);
> + //return -EINVAL;
> + }
> + }
> +
> +out:
> + if (nls_name[0]) {
> + sbi->nls = load_nls(nls_name);
> + if (!sbi->nls) {
> + /* critical ?*/
> + ntfs_error(sb, "failed to load \"%s\"\n", nls_name);
> + //return -EINVAL;

Well, I think it is a fatal error if user supplied NLS encoding cannot
be loaded. If user via mount parameter specify that wants encoding XYZ
and kernel loads different (e.g. default one) then userspace would be
confused as it would expect encoding XYZ.

> + }
> + }
> +
> + if (!sbi->nls) {
> + sbi->nls = load_nls_default();
> + if (!sbi->nls) {
> + /* critical */
> + ntfs_error(sb, "failed to load default nls");
> + return -EINVAL;
> + }
> + }
> +
> + return 0;
> +}