From 5620a17b53a74e60d97845dadb1e2ac7038b0643 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 6 Aug 2023 09:42:20 +0200 Subject: Adding patch from upstream to fix fd leaks with /sys/bus/pci/slots (Closes: #1043095). Signed-off-by: Daniel Baumann --- debian/patches/series | 1 + .../patches/upstream/0001-pci-slots-fd-leak.patch | 26 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 debian/patches/series create mode 100644 debian/patches/upstream/0001-pci-slots-fd-leak.patch diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..08dea8e --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +upstream/0001-pci-slots-fd-leak.patch diff --git a/debian/patches/upstream/0001-pci-slots-fd-leak.patch b/debian/patches/upstream/0001-pci-slots-fd-leak.patch new file mode 100644 index 0000000..e3a5b15 --- /dev/null +++ b/debian/patches/upstream/0001-pci-slots-fd-leak.patch @@ -0,0 +1,26 @@ +Author: Martin Belanger +Description: tree: missing closedir() causes fd leak for "/sys/bus/pci/slots" + In nvme_ctrl_lookup_phy_slot(), we are missing a closedir(), which + causes file descriptors to leak. Also, there was a missing free() + when the function returns with ENOMEM. + +diff -Naurp libnvme.orig/src/nvme/tree.c libnvme/src/nvme/tree.c +--- libnvme.orig/src/nvme/tree.c ++++ libnvme/src/nvme/tree.c +@@ -1292,6 +1292,8 @@ static char *nvme_ctrl_lookup_phy_slot(n + ret = asprintf(&path, "/sys/bus/pci/slots/%s", entry->d_name); + if (ret < 0) { + errno = ENOMEM; ++ free(target_addr); ++ closedir(slots_dir); + return NULL; + } + addr = nvme_get_attr(path, "address"); +@@ -1306,6 +1308,7 @@ static char *nvme_ctrl_lookup_phy_slot(n + } + } + free(target_addr); ++ closedir(slots_dir); + if (found) + return strdup(entry->d_name); + return NULL; -- cgit v1.2.3