]> www.infradead.org Git - users/jedix/linux-maple.git/commit
PCI: Fix reset_method_store() memory leak
authorTodd Kjos <tkjos@google.com>
Tue, 1 Oct 2024 23:11:47 +0000 (23:11 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 2 Oct 2024 21:36:35 +0000 (16:36 -0500)
commit2985b1844f3f3447f2d938eff1ef6762592065a5
tree9d96384fd76542bbb4d44a03cce7e613e0c1a10a
parent43ee11adcb940204948ac0ca3a05d6178f0e8b08
PCI: Fix reset_method_store() memory leak

In reset_method_store(), a string is allocated via kstrndup() and assigned
to the local "options". options is then used in with strsep() to find
spaces:

  while ((name = strsep(&options, " ")) != NULL) {

If there are no remaining spaces, then options is set to NULL by strsep(),
so the subsequent kfree(options) doesn't free the memory allocated via
kstrndup().

Fix by using a separate tmp_options to iterate with strsep() so options is
preserved.

Link: https://lore.kernel.org/r/20241001231147.3583649-1-tkjos@google.com
Fixes: d88f521da3ef ("PCI: Allow userspace to query and set device reset mechanism")
Signed-off-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pci.c