diff options
author | Chengguang Xu <cgxu519@icloud.com> | 2018-02-25 15:17:31 -0500 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2018-02-26 13:02:13 -0500 |
commit | 5b4c845ea4f4b86c43096eb924354c83a2e26f3c (patch) | |
tree | 49d0741f02305b0b9169c4aeadeda594bfaae0d7 /fs | |
parent | b31c2bdcd83e3374fec5a8e27a2fb4d26e771c52 (diff) |
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.c | 2 |
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( | |||
250 | return -EINVAL; | 250 | return -EINVAL; |
251 | break; | 251 | break; |
252 | case Opt_logdev: | 252 | case Opt_logdev: |
253 | kfree(mp->m_logname); | ||
253 | mp->m_logname = match_strdup(args); | 254 | mp->m_logname = match_strdup(args); |
254 | if (!mp->m_logname) | 255 | if (!mp->m_logname) |
255 | return -ENOMEM; | 256 | return -ENOMEM; |
@@ -258,6 +259,7 @@ xfs_parseargs( | |||
258 | xfs_warn(mp, "%s option not allowed on this system", p); | 259 | xfs_warn(mp, "%s option not allowed on this system", p); |
259 | return -EINVAL; | 260 | return -EINVAL; |
260 | case Opt_rtdev: | 261 | case Opt_rtdev: |
262 | kfree(mp->m_rtname); | ||
261 | mp->m_rtname = match_strdup(args); | 263 | mp->m_rtname = match_strdup(args); |
262 | if (!mp->m_rtname) | 264 | if (!mp->m_rtname) |
263 | return -ENOMEM; | 265 | return -ENOMEM; |