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>
Mon, 13 Aug 2018 17:48:17 +0000 (10:48 -0700)
commit6b9cb1242cb082044c8c3f8b9f35d9ada101dc41
treec6668cbc1a8091d4c7d9195a392604b2e2ad7e2d
parentb83dcfe67142ea9f4bfaa1e9e21504be9e3c1bf7
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