diff options
Diffstat (limited to 'net/ceph/ceph_common.c')
-rw-r--r-- | net/ceph/ceph_common.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c index 1e492ef2a33d..4d4c82229e9e 100644 --- a/net/ceph/ceph_common.c +++ b/net/ceph/ceph_common.c | |||
@@ -418,6 +418,7 @@ ceph_parse_options(char *options, const char *dev_name, | |||
418 | opt->flags |= CEPH_OPT_FSID; | 418 | opt->flags |= CEPH_OPT_FSID; |
419 | break; | 419 | break; |
420 | case Opt_name: | 420 | case Opt_name: |
421 | kfree(opt->name); | ||
421 | opt->name = kstrndup(argstr[0].from, | 422 | opt->name = kstrndup(argstr[0].from, |
422 | argstr[0].to-argstr[0].from, | 423 | argstr[0].to-argstr[0].from, |
423 | GFP_KERNEL); | 424 | GFP_KERNEL); |
@@ -427,6 +428,9 @@ ceph_parse_options(char *options, const char *dev_name, | |||
427 | } | 428 | } |
428 | break; | 429 | break; |
429 | case Opt_secret: | 430 | case Opt_secret: |
431 | ceph_crypto_key_destroy(opt->key); | ||
432 | kfree(opt->key); | ||
433 | |||
430 | opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL); | 434 | opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL); |
431 | if (!opt->key) { | 435 | if (!opt->key) { |
432 | err = -ENOMEM; | 436 | err = -ENOMEM; |
@@ -437,6 +441,9 @@ ceph_parse_options(char *options, const char *dev_name, | |||
437 | goto out; | 441 | goto out; |
438 | break; | 442 | break; |
439 | case Opt_key: | 443 | case Opt_key: |
444 | ceph_crypto_key_destroy(opt->key); | ||
445 | kfree(opt->key); | ||
446 | |||
440 | opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL); | 447 | opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL); |
441 | if (!opt->key) { | 448 | if (!opt->key) { |
442 | err = -ENOMEM; | 449 | err = -ENOMEM; |