diff --git a/.gitignore b/.gitignore index d7fe05c..429c42d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -libnvme-1.13.tar.gz +libnvme-1.16.1.tar.gz diff --git a/0001-tree-cleanup-paths-when-freeing-namespace.patch b/0001-tree-cleanup-paths-when-freeing-namespace.patch new file mode 100644 index 0000000..f875443 --- /dev/null +++ b/0001-tree-cleanup-paths-when-freeing-namespace.patch @@ -0,0 +1,40 @@ +diff --git a/src/nvme/tree.c b/src/nvme/tree.c +index bc83648..98822d0 100644 +--- a/src/nvme/tree.c ++++ b/src/nvme/tree.c +@@ -632,11 +632,18 @@ nvme_path_t nvme_namespace_next_path(nvme_ns_t ns, nvme_path_t p) + + static void __nvme_free_ns(struct nvme_ns *n) + { ++ struct nvme_path *p, *_p; ++ + list_del_init(&n->entry); + nvme_ns_release_fd(n); + free(n->generic_name); + free(n->name); + free(n->sysfs_dir); ++ nvme_namespace_for_each_path_safe(n, p, _p) { ++ list_del_init(&p->nentry); ++ p->n = NULL; ++ } ++ list_head_init(&n->head->paths); + free(n->head->sysfs_dir); + free(n->head); + free(n); +@@ -3033,16 +3040,8 @@ static int nvme_subsystem_scan_namespace(nvme_root_t r, nvme_subsystem_t s, + return -1; + } + nvme_subsystem_for_each_ns_safe(s, _n, __n) { +- struct nvme_path *p, *_p; +- + if (strcmp(n->name, _n->name)) + continue; +- /* Detach paths */ +- nvme_namespace_for_each_path_safe(_n, p, _p) { +- list_del_init(&p->nentry); +- p->n = NULL; +- } +- list_head_init(&_n->head->paths); + __nvme_free_ns(_n); + } + n->s = s; diff --git a/libnvme.spec b/libnvme.spec index 367d621..97a511b 100644 --- a/libnvme.spec +++ b/libnvme.spec @@ -3,11 +3,12 @@ Name: libnvme Summary: Linux-native nvme device management library -Version: 1.13 -Release: 1%{?dist} +Version: 1.16.1 +Release: 3%{?dist} License: LGPL-2.1-or-later URL: https://github.com/linux-nvme/libnvme Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}.tar.gz +Patch0: 0001-tree-cleanup-paths-when-freeing-namespace.patch BuildRequires: gcc gcc-c++ BuildRequires: swig @@ -76,9 +77,9 @@ rm -r %{buildroot}%{_pkgdocdir}/html/{.buildinfo,.doctrees/} %files %license COPYING ccan/licenses/* %{_libdir}/libnvme.so.1 -%{_libdir}/libnvme.so.1.13.0 +%{_libdir}/libnvme.so.1.16.1 %{_libdir}/libnvme-mi.so.1 -%{_libdir}/libnvme-mi.so.1.13.0 +%{_libdir}/libnvme-mi.so.1.16.1 %files devel %{_libdir}/libnvme.so @@ -98,6 +99,24 @@ rm -r %{buildroot}%{_pkgdocdir}/html/{.buildinfo,.doctrees/} %{python3_sitearch}/libnvme/* %changelog +* Fri Mar 27 2026 Maurizio Lombardi - 1.16.1-3 +- Fix linked list corruption (RHEL-156539) + +* Wed Nov 19 2025 Maurizio Lombardi - 1.16.1-2 +- Fix gating tests for RHEL-127740 + +* Wed Nov 12 2025 Maurizio Lombardi - 1.16.1-1 +- Rebase to version 1.16.1 (RHEL-127740) + +* Fri Sep 26 2025 Maurizio Lombardi - 1.15-3 +- Add a fix for a NULL pointer dereference regression + +* Mon Sep 08 2025 Maurizio Lombardi - 1.15-2 +- bump version because the side-tag didn't propagate + +* Thu Sep 04 2025 Maurizio Lombardi - 1.15-1 +- Update to version 1.15 (RHEL-113070) + * Mon May 12 2025 Maurizio Lombardi - 1.13-1 - Update to version 1.13 (RHEL-90418) diff --git a/sources b/sources index cee46dc..c239484 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libnvme-1.13.tar.gz) = 7c56cb4a531c77e7024126c3dde4ffe629944be93a3102b09bc7a16031bdd64dac5cb19834c586609c5e3c186f805532d739f960abc4ba22114f36c6bc710264 +SHA512 (libnvme-1.16.1.tar.gz) = 92113cd62af53366fb63f2f385c2059dede171fef4d9a240fa941382e338d2941e90aeb40ae2d202311d7b531e41181839f45f8ab4da1b3a79ce4b597fcd4993