OSDN Git Service

f2fs: fix use-after-free of dicard command entry
authorChao Yu <yuchao0@huawei.com>
Wed, 8 Aug 2018 02:14:55 +0000 (10:14 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 18 Sep 2018 21:42:39 +0000 (14:42 -0700)
commit06962ff3351ac429a448be1b7e4a8097ee363fed
tree61b3ef1b70d82b5b2a6875d35ae0589136e79ac6
parent783a75765aad650efef729b9b26b7ffeea7af5fe
f2fs: fix use-after-free of dicard command entry

As Dan Carpenter reported:

The patch 20ee4382322c: "f2fs: issue small discard by LBA order" from
Jul 8, 2018, leads to the following Smatch warning:

fs/f2fs/segment.c:1277 __issue_discard_cmd_orderly()
warn: 'dc' was already freed.

See also:
fs/f2fs/segment.c:2550 __issue_discard_cmd_range() warn: 'dc' was already freed.

In order to fix this issue, let's get error from __submit_discard_cmd(),
and release current discard command after we referenced next one.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c