|
@@ -418,6 +418,7 @@ ceph_parse_options(char *options, const char *dev_name,
|
|
|
opt->flags |= CEPH_OPT_FSID;
|
|
|
break;
|
|
|
case Opt_name:
|
|
|
+ kfree(opt->name);
|
|
|
opt->name = kstrndup(argstr[0].from,
|
|
|
argstr[0].to-argstr[0].from,
|
|
|
GFP_KERNEL);
|
|
@@ -427,6 +428,9 @@ ceph_parse_options(char *options, const char *dev_name,
|
|
|
}
|
|
|
break;
|
|
|
case Opt_secret:
|
|
|
+ ceph_crypto_key_destroy(opt->key);
|
|
|
+ kfree(opt->key);
|
|
|
+
|
|
|
opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL);
|
|
|
if (!opt->key) {
|
|
|
err = -ENOMEM;
|
|
@@ -437,6 +441,9 @@ ceph_parse_options(char *options, const char *dev_name,
|
|
|
goto out;
|
|
|
break;
|
|
|
case Opt_key:
|
|
|
+ ceph_crypto_key_destroy(opt->key);
|
|
|
+ kfree(opt->key);
|
|
|
+
|
|
|
opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL);
|
|
|
if (!opt->key) {
|
|
|
err = -ENOMEM;
|