Re: [PATCH v2 1/2] nvmet: Fix use-after-free bug when a port is removed

From: Max Gurtovoy
Date: Fri Jul 05 2019 - 08:18:20 EST



On 7/5/2019 12:01 AM, Logan Gunthorpe wrote:

On 2019-07-04 3:00 p.m., Max Gurtovoy wrote:
Hi Logan,

On 7/4/2019 2:03 AM, Logan Gunthorpe wrote:
When a port is removed through configfs, any connected controllers
are still active and can still send commands. This causes a
use-after-free bug which is detected by KASAN for any admin command
that dereferences req->port (like in nvmet_execute_identify_ctrl).

To fix this, disconnect all active controllers when a subsystem is
removed from a port. This ensures there are no active controllers
when the port is eventually removed.
so now we are enforcing controller existence with port configfs, right ?
sounds reasonable.
Correct.

Did you run your patches with other transport (RDMA/TCP/FC) ?
Just RDMA and loop. I suppose I could test with TCP but I don't have FC
hardware.

Great.

the code looks good:

Reviewed-by: Max Gurtovoy <maxg@xxxxxxxxxxxx>


Logan