summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChengguang Xu <cgxu519@icloud.com>2018-02-25 21:17:31 +0100
committerDarrick J. Wong <darrick.wong@oracle.com>2018-02-26 19:02:13 +0100
commit5b4c845ea4f4b86c43096eb924354c83a2e26f3c (patch)
tree49d0741f02305b0b9169c4aeadeda594bfaae0d7 /fs
parentxfs: reserve blocks for refcount / rmap log item recovery (diff)
downloadlinux-5b4c845ea4f4b86c43096eb924354c83a2e26f3c.tar.xz
linux-5b4c845ea4f4b86c43096eb924354c83a2e26f3c.zip
xfs: fix potential memory leak in mount option parsing
When specifying string type mount option (e.g., logdev) several times in a mount, current option parsing may cause memory leak. Hence, call kfree for previous one in this case. Signed-off-by: Chengguang Xu <cgxu519@icloud.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/xfs/xfs_super.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 7aba628dc527..93588ea3d3d2 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -250,6 +250,7 @@ xfs_parseargs(
return -EINVAL;
break;
case Opt_logdev:
+ kfree(mp->m_logname);
mp->m_logname = match_strdup(args);
if (!mp->m_logname)
return -ENOMEM;
@@ -258,6 +259,7 @@ xfs_parseargs(
xfs_warn(mp, "%s option not allowed on this system", p);
return -EINVAL;
case Opt_rtdev:
+ kfree(mp->m_rtname);
mp->m_rtname = match_strdup(args);
if (!mp->m_rtname)
return -ENOMEM;