mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
dmatest: fix use after free in dmatest_exit
dmatest_cleanup_chanel will free dtc, so grab ->chan before it goes away and use it to do the release. Reported-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
c74ef1f867
commit
7cbd4877e5
@ -430,13 +430,15 @@ late_initcall(dmatest_init);
|
||||
static void __exit dmatest_exit(void)
|
||||
{
|
||||
struct dmatest_chan *dtc, *_dtc;
|
||||
struct dma_chan *chan;
|
||||
|
||||
list_for_each_entry_safe(dtc, _dtc, &dmatest_channels, node) {
|
||||
list_del(&dtc->node);
|
||||
chan = dtc->chan;
|
||||
dmatest_cleanup_channel(dtc);
|
||||
pr_debug("dmatest: dropped channel %s\n",
|
||||
dma_chan_name(dtc->chan));
|
||||
dma_release_channel(dtc->chan);
|
||||
dma_chan_name(chan));
|
||||
dma_release_channel(chan);
|
||||
}
|
||||
}
|
||||
module_exit(dmatest_exit);
|
||||
|
Loading…
Reference in New Issue
Block a user