[PATCH 2/2] hfsplus: fix potential refcnt problem of nls module

From: Chengguang Xu
Date: Tue Apr 17 2018 - 03:06:27 EST


When specifying nls option multiple times in a mount,
current option parsing will cause inaccurate refcount of nls
module. Hence, call unload_nls for previous one in this case.

Signed-off-by: Chengguang Xu <cgxu519@xxxxxxx>
---
fs/hfsplus/options.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/hfsplus/options.c b/fs/hfsplus/options.c
index 047e05c..068d4e2 100644
--- a/fs/hfsplus/options.c
+++ b/fs/hfsplus/options.c
@@ -171,8 +171,10 @@ int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi)
return 0;
}
p = match_strdup(&args[0]);
- if (p)
+ if (p) {
+ unload_nls(sbi->nls);
sbi->nls = load_nls(p);
+ }
if (!sbi->nls) {
pr_err("unable to load nls mapping \"%s\"\n",
p);
--
1.8.3.1