Ilya Dryomov
71da2a151e
rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails
...
commit f7c4d9b133c7a04ca619355574e96b6abf209fba upstream.
If getting an ID or setting up a work queue in rbd_dev_create() fails,
use-after-free on rbd_dev->rbd_client, rbd_dev->spec and rbd_dev->opts
is triggered in do_rbd_add(). The root cause is that the ownership of
these structures is transfered to rbd_dev prematurely and they all end
up getting freed when rbd_dev_create() calls rbd_dev_free() prior to
returning to do_rbd_add().
Found by Linux Verification Center (linuxtesting.org) with SVACE, an
incomplete patch submitted by Natalia Petrova <n.petrova@fintech.ru>.
Cc: stable@vger.kernel.org
Fixes: 1643dfa4c2c8 ("rbd: introduce a per-device ordered workqueue")
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-03-11 16:26:48 +01:00
..
2023-03-11 16:26:42 +01:00
2022-09-15 12:23:50 +02:00
2022-11-10 15:47:20 +01:00
2022-08-25 11:11:33 +02:00
2023-01-18 09:26:42 +01:00
2023-03-11 16:26:48 +01:00
2023-01-18 09:26:20 +01:00
2023-02-22 12:46:01 +01:00
2023-01-18 09:26:36 +01:00
2023-01-18 09:26:33 +01:00
2022-06-14 16:54:00 +02:00
2023-03-11 16:26:37 +01:00
2023-01-18 09:26:09 +01:00
2023-01-18 09:26:38 +01:00
2023-01-18 09:26:22 +01:00
2023-03-11 16:26:33 +01:00
2023-02-06 07:46:31 +01:00
2022-06-14 16:54:00 +02:00
2023-02-22 12:46:01 +01:00
2023-02-22 12:46:02 +01:00
2022-08-25 11:11:21 +02:00
2022-10-26 13:17:06 +02:00
2023-03-11 16:26:39 +01:00
2023-03-11 16:26:42 +01:00
2023-03-11 16:26:33 +01:00
2023-01-18 09:26:26 +01:00
2022-09-28 10:56:52 +02:00
2023-03-11 16:26:39 +01:00
2022-08-25 11:11:29 +02:00
2023-01-18 09:26:25 +01:00
2022-11-01 19:14:45 +01:00
2023-02-22 12:46:03 +01:00
2023-03-11 16:26:32 +01:00
2023-03-11 16:26:40 +01:00
2023-01-18 09:26:38 +01:00
2023-03-11 16:26:38 +01:00
2023-01-18 09:26:28 +01:00
2022-05-12 12:17:04 +02:00
2023-01-18 09:26:27 +01:00
2022-10-26 13:17:07 +02:00
2023-01-18 09:26:24 +01:00
2023-03-11 16:26:47 +01:00
2023-03-11 16:26:40 +01:00
2022-10-26 13:17:02 +02:00
2022-08-25 11:11:21 +02:00
2023-03-11 16:26:39 +01:00
2023-01-18 09:26:27 +01:00
2023-02-22 12:46:05 +01:00
2023-03-11 16:26:40 +01:00
2023-03-11 16:26:47 +01:00
2023-01-18 09:26:43 +01:00
2022-07-07 17:31:16 +02:00
2023-02-22 12:46:05 +01:00
2022-12-08 11:16:31 +01:00
2023-01-18 09:26:38 +01:00
2022-11-25 17:36:50 +01:00
2023-01-18 09:26:38 +01:00
2022-06-14 16:53:55 +02:00
2022-04-20 09:08:30 +02:00
2023-02-06 07:46:28 +01:00
2023-03-11 16:26:43 +01:00
2023-01-18 09:26:43 +01:00
2023-01-18 09:26:10 +01:00
2023-01-18 09:26:26 +01:00
2022-10-26 13:17:08 +02:00
2022-04-20 09:08:26 +02:00
2022-06-14 16:53:56 +02:00
2023-01-18 09:26:12 +01:00
2023-03-11 16:26:43 +01:00
2022-08-25 11:11:24 +02:00
2023-03-11 16:26:41 +01:00
2023-03-11 16:26:44 +01:00
2023-01-18 09:26:31 +01:00
2023-03-11 16:26:39 +01:00
2023-01-18 09:26:36 +01:00
2023-03-11 16:26:43 +01:00
2022-10-26 13:17:07 +02:00
2023-02-06 07:46:30 +01:00
2023-02-22 12:46:01 +01:00
2023-03-11 16:26:41 +01:00
2022-09-15 12:23:50 +02:00
2023-02-22 12:46:03 +01:00
2023-01-18 09:26:23 +01:00
2023-03-11 16:26:33 +01:00
2023-01-18 09:26:23 +01:00
2022-10-26 13:17:00 +02:00
2023-02-22 12:46:02 +01:00
2022-07-21 20:42:46 +02:00
2023-01-18 09:26:25 +01:00
2023-02-06 07:46:30 +01:00
2023-02-22 12:46:02 +01:00
2022-12-08 11:16:31 +01:00