]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
nvme: fix memory leak in quirks_param_set()
authorMaurizio Lombardi <mlombard@redhat.com>
Wed, 11 Feb 2026 16:30:28 +0000 (17:30 +0100)
committerKeith Busch <kbusch@kernel.org>
Thu, 12 Feb 2026 02:34:39 +0000 (18:34 -0800)
commitbbdaa8c17cae18b977f4509911d7a390aa8a6597
tree3317da2a84b83320c5b1abd8d42b5f0a3d3d3af6
parent3ddfbfbc78ac1d3d9e95098fb6a32b57b8a0dcae
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>
drivers/nvme/host/pci.c