From 8c766402fe7c32491015c101cec9b418e4b4b888 Mon Sep 17 00:00:00 2001 From: wangxiao65 Date: Wed, 18 Dec 2024 07:31:29 +0000 Subject: [PATCH] libkmod: Set builtin to no when module is created from path --- ...tin-to-no-when-module-is-created-fro.patch | 62 +++++++++++++++++++ kmod.spec | 6 +- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 backport-libkmod-Set-builtin-to-no-when-module-is-created-fro.patch diff --git a/backport-libkmod-Set-builtin-to-no-when-module-is-created-fro.patch b/backport-libkmod-Set-builtin-to-no-when-module-is-created-fro.patch new file mode 100644 index 0000000..37ce805 --- /dev/null +++ b/backport-libkmod-Set-builtin-to-no-when-module-is-created-fro.patch @@ -0,0 +1,62 @@ +From 4e391ac92d1b9a2c8c0e9d8735d2913ee86c0ad8 Mon Sep 17 00:00:00 2001 +From: Michal Suchanek +Date: Wed, 18 Aug 2021 22:52:00 +0200 +Subject: [PATCH] libkmod: Set builtin to no when module is created from path. + +A recent bug report showed that modinfo doesn't give the signature +information for certain modules, and it turned out to happen only on +the modules that are built-in on the running kernel; then modinfo +skips the signature check, as if the target module file never exists. +The behavior is, however, inconsistent when modinfo is performed for +external modules (no matter which kernel version is) and the module +file path is explicitly given by a command-line argument, which +guarantees the presence of the module file itself. + +Fixes: e7e2cb61fa9f ("modinfo: Show information about built-in modules") +Link: https://lore.kernel.org/linux-modules/CAKi4VAJVvY3=JdSZm-GD1hJqyCPYaYz-jBJ_REeY5BakVb6_ww@mail.gmail.com/ +BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1189537 +Suggested-by: Lucas De Marchi +Signed-off-by: Michal Suchanek +Reviewed-by: Petr Vorel + +Reference: https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit?id=4e391ac92d1b9a2c8c0e9d8735d2913ee86c0ad8 +Conflict: NA + +--- + libkmod/libkmod-module.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c +index 6e0ff1a..6f7747c 100644 +--- a/libkmod/libkmod-module.c ++++ b/libkmod/libkmod-module.c +@@ -431,17 +431,18 @@ KMOD_EXPORT int kmod_module_new_from_path(struct kmod_ctx *ctx, + return -EEXIST; + } + +- *mod = kmod_module_ref(m); +- return 0; +- } ++ kmod_module_ref(m); ++ } else { ++ err = kmod_module_new(ctx, name, name, namelen, NULL, 0, &m); ++ if (err < 0) { ++ free(abspath); ++ return err; ++ } + +- err = kmod_module_new(ctx, name, name, namelen, NULL, 0, &m); +- if (err < 0) { +- free(abspath); +- return err; ++ m->path = abspath; + } + +- m->path = abspath; ++ m->builtin = KMOD_MODULE_BUILTIN_NO; + *mod = m; + + return 0; +-- +2.33.0 + diff --git a/kmod.spec b/kmod.spec index 5061752..891254c 100644 --- a/kmod.spec +++ b/kmod.spec @@ -1,6 +1,6 @@ Name: kmod Version: 27 -Release: 11 +Release: 12 Summary: Kernel module management # GPLv2+ is used by programs, LGPLv2+ is used for libraries. License: GPLv2+ and LGPLv2+ @@ -16,6 +16,7 @@ Patch6003: backport-libkmod-kmod_builtin_get_modinfo-free-modinfo-on-err.patch Patch6004: backport-depmod-output_builtin_alias_bin-free-idx-on-error-pa.patch Patch6005: backport-libkmod-kmod_log_null-qualify-ctx-argument-as-const.patch Patch6006: backprot-libkmod-config-fix-a-memory-leak-when-kmod_list_appe.patch +Patch6007: backport-libkmod-Set-builtin-to-no-when-module-is-created-fro.patch Patch9000: bugfix-kmod-20-8-depmod-Don-t-unlinkat-orig-depfile-and-add-fsync.patch BuildRequires: gcc chrpath zlib-devel xz-devel libxslt openssl-devel @@ -124,6 +125,9 @@ install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d/dist.conf %doc TODO NEWS README %changelog +* Wed Dec 18 2024 wangxiao - 27-12 +- libkmod: Set builtin to no when module is created from path + * Thu Jul 21 2022 liwenchong - 27-11 - fix memeory leak -- Gitee