mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
nvme: fix memory leak in quirks_param_set()
When loading the nvme module, if the 'quirks' parameter is specified
via both the kernel command line (e.g., nvme.quirks=...) and the
modprobe command line (e.g., modprobe nvme quirks=...), the
quirks_param_set() callback is invoked twice.
Currently, in the double-invocation scenario, the second call
overwrites the nvme_pci_quirk_list pointer, causing the memory
allocated in the first call to leak.
Fix this by freeing the existing list before assigning the new one.
Fixes: b4247c8317c5 ("nvme: add support for dynamic quirk configuration via module parameter")
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
parent
3ddfbfbc78
commit
bbdaa8c17c
1 changed files with 1 additions and 0 deletions
|
|
@ -219,6 +219,7 @@ static int quirks_param_set(const char *value, const struct kernel_param *kp)
|
|||
i++;
|
||||
}
|
||||
|
||||
kfree(nvme_pci_quirk_list);
|
||||
nvme_pci_quirk_count = count;
|
||||
nvme_pci_quirk_list = qlist;
|
||||
goto out_free_val;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue