diff options
author | Chengguang Xu <cgxu519@icloud.com> | 2018-02-06 08:25:55 +0800 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2018-02-26 16:19:30 +0100 |
commit | 937441f3a3158d5510ca8cc78a82453f57a96365 (patch) | |
tree | 50f5222a92bd9b764d95e9dc2bd78e63d83d98a3 /fs/ceph | |
parent | 6ef0bc6ddee1f62310877a1d53b1ea1d0d8e51a2 (diff) | |
download | blackbird-op-linux-937441f3a3158d5510ca8cc78a82453f57a96365.tar.gz blackbird-op-linux-937441f3a3158d5510ca8cc78a82453f57a96365.zip |
libceph, ceph: avoid memory leak when specifying same option several times
When parsing string option, in order to avoid memory leak we need to
carefully free it first in case of specifying same option several times.
Signed-off-by: Chengguang Xu <cgxu519@icloud.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph')
-rw-r--r-- | fs/ceph/super.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ceph/super.c b/fs/ceph/super.c index a62d2a9841dc..bfc85b22a190 100644 --- a/fs/ceph/super.c +++ b/fs/ceph/super.c @@ -225,6 +225,7 @@ static int parse_fsopt_token(char *c, void *private) return -ENOMEM; break; case Opt_mds_namespace: + kfree(fsopt->mds_namespace); fsopt->mds_namespace = kstrndup(argstr[0].from, argstr[0].to-argstr[0].from, GFP_KERNEL); @@ -232,6 +233,7 @@ static int parse_fsopt_token(char *c, void *private) return -ENOMEM; break; case Opt_fscache_uniq: + kfree(fsopt->fscache_uniq); fsopt->fscache_uniq = kstrndup(argstr[0].from, argstr[0].to-argstr[0].from, GFP_KERNEL); |