[PATCH] mtd: fix use-after-free in mtd release

Miquel Raynal miquel.raynal at bootlin.com
Thu Jul 27 08:20:13 PDT 2023


Hi Andy,

andriy.shevchenko at linux.intel.com wrote on Thu, 27 Jul 2023 18:12:04
+0300:

> On Thu, Jul 27, 2023 at 05:57:58PM +0300, Alexander Usyskin wrote:
> > I case of partition device_unregister in mtd_device_release  
> 
> In
> 
> device_unregister()
> mtd_device_release()
> 
> > calls mtd_release which frees mtd_info structure for partition.  
> 
> mtd_release()
> 
> > All code after device_unregister in mtd_device_release thus  
> 
> device_unregister()
> mtd_device_release()
> 
> > works already freed memory.  
> 
> uses?
> 
> > Move part of code to mtd_release and restict mtd->dev cleanup  
> 
> mtd_release()

Yup, thanks for all these suggestions, I agree with them.

> > to non-partion object.
> > For partition object such cleanup have no sense as partition
> > mtd_info is removed.
> > 
> > Cc: Miquel Raynal <miquel.raynal at bootlin.com>
> > Cc: Zhang Xiaoxu <zhangxiaoxu5 at huawei.com>
> > Fixes: 19bfa9ebebb5 ("mtd: use refcount to prevent corruption")  
> 
> Closes: ?

Did I miss a recent update on the use of Fixes? I thought Closes was
supposed to point at a bug report while Fixes would point to the faulty
commit. Right now I feel like Fixes is the right tag, but if you have a
source explaining why we should not longer do it like I am used to,
I would appreciate a link.

Thanks,
Miquèl



More information about the linux-mtd mailing list