backport patch to fix some bugs
libkmod-module:check "new_from_name" return value in get_builtin libkmod:fix possible double free with wrong modules.buildin.modinfo libkmod:fix an overflow with wrong modules.builtin.modinfo libkmod-config:fix a memory leak when kmod_list_append() fails Fix "modinfo -F always shows name for built-ins"
This commit is contained in:
parent
9f58d4445a
commit
d5cdeeba4c
44
backport-Fix-modinfo-F-always-shows-name-for-built-ins.patch
Normal file
44
backport-Fix-modinfo-F-always-shows-name-for-built-ins.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From fa67110f896cdef67f42cbc2206ae2a8524acee6 Mon Sep 17 00:00:00 2001
|
||||
From: Marco d'Itri <md@linux.it>
|
||||
Date: Thu, 7 Jan 2021 20:17:48 -0800
|
||||
Subject: [PATCH] Fix "modinfo -F always shows name for built-ins"
|
||||
|
||||
Conflict:NA
|
||||
Reference:https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/?id=fa67110f896cdef67f42cbc2206ae2a8524acee6
|
||||
|
||||
Bug reported by Ben Hutchings <ben@decadent.org.uk>:
|
||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=970871
|
||||
|
||||
Now that the kernel provides module information for potentially
|
||||
modular code that's actually built-in, it's possible to query these
|
||||
built-ins with "modinfo -F". However, this doesn't work quite right:
|
||||
|
||||
$ modinfo -Flicense e1000e
|
||||
GPL v2
|
||||
$ modinfo -Flicense bitrev
|
||||
name: bitrev
|
||||
GPL
|
||||
---
|
||||
tools/modinfo.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/modinfo.c b/tools/modinfo.c
|
||||
index 0231bb0..f6a971f 100644
|
||||
--- a/tools/modinfo.c
|
||||
+++ b/tools/modinfo.c
|
||||
@@ -178,7 +178,11 @@ static int modinfo_do(struct kmod_module *mod)
|
||||
is_builtin = (filename == NULL);
|
||||
|
||||
if (is_builtin) {
|
||||
- printf("%-16s%s%c", "name:", kmod_module_get_name(mod), separator);
|
||||
+ if (field == NULL)
|
||||
+ printf("%-16s%s%c", "name:",
|
||||
+ kmod_module_get_name(mod), separator);
|
||||
+ else if (field != NULL && streq(field, "name"))
|
||||
+ printf("%s%c", kmod_module_get_name(mod), separator);
|
||||
filename = "(builtin)";
|
||||
}
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
From 39dd171623744ac390dadf487c5a3ebf0b69f2ca Mon Sep 17 00:00:00 2001
|
||||
From: Seung-Woo Kim <sw0312.kim@samsung.com>
|
||||
Date: Fri, 9 Apr 2021 18:44:23 +0900
|
||||
Subject: [PATCH] libkmod-config: fix a memory leak when kmod_list_append()
|
||||
fails
|
||||
|
||||
Conflict:NA
|
||||
Reference:https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/?id=39dd171623744ac390dadf487c5a3ebf0b69f2ca
|
||||
|
||||
From kmod_config_new(), when kmod_list_append() fails,
|
||||
fix not list-appended kmod_config_path leak.
|
||||
|
||||
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
|
||||
---
|
||||
libkmod/libkmod-config.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libkmod/libkmod-config.c b/libkmod/libkmod-config.c
|
||||
index 4fdd40f..e83621b 100644
|
||||
--- a/libkmod/libkmod-config.c
|
||||
+++ b/libkmod/libkmod-config.c
|
||||
@@ -909,8 +909,10 @@ int kmod_config_new(struct kmod_ctx *ctx, struct kmod_config **p_config,
|
||||
memcpy(cf->path, path, pathlen);
|
||||
|
||||
tmp = kmod_list_append(path_list, cf);
|
||||
- if (tmp == NULL)
|
||||
+ if (tmp == NULL) {
|
||||
+ free(cf);
|
||||
goto oom;
|
||||
+ }
|
||||
path_list = tmp;
|
||||
}
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
From 1cab02ecf6ee2a0aa34f3615dfd99c59f7e04e90 Mon Sep 17 00:00:00 2001
|
||||
From: Seung-Woo Kim <sw0312.kim@samsung.com>
|
||||
Date: Tue, 13 Apr 2021 20:23:14 +0900
|
||||
Subject: [PATCH] libkmod: fix an overflow with wrong modules.builtin.modinfo
|
||||
|
||||
Conflict:NA
|
||||
Reference:https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/?id=1cab02ecf6ee2a0aa34f3615dfd99c59f7e04e90
|
||||
|
||||
Fix a possbile overflow with exact PATH_MAX length modname
|
||||
in wrong modules.builtin.modinfo.
|
||||
|
||||
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
|
||||
---
|
||||
libkmod/libkmod-builtin.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libkmod/libkmod-builtin.c b/libkmod/libkmod-builtin.c
|
||||
index fc9a376..a75a542 100644
|
||||
--- a/libkmod/libkmod-builtin.c
|
||||
+++ b/libkmod/libkmod-builtin.c
|
||||
@@ -246,7 +246,7 @@ bool kmod_builtin_iter_get_modname(struct kmod_builtin_iter *iter,
|
||||
|
||||
len = dot - line;
|
||||
|
||||
- if (len > PATH_MAX) {
|
||||
+ if (len >= PATH_MAX) {
|
||||
sv_errno = ENAMETOOLONG;
|
||||
goto fail;
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From 675410c3b3b1cf4523f02ab6e3128c39bd5d5101 Mon Sep 17 00:00:00 2001
|
||||
From: Seung-Woo Kim <sw0312.kim@samsung.com>
|
||||
Date: Tue, 13 Apr 2021 20:23:15 +0900
|
||||
Subject: [PATCH] libkmod: fix possible double free with wrong
|
||||
modules.builtin.modinfo
|
||||
|
||||
Conflict:NA
|
||||
Reference:https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/?id=675410c3b3b1cf4523f02ab6e3128c39bd5d5101
|
||||
|
||||
Fix double free for *modinfo with non '\0' terminated wrong
|
||||
modules.builtin.modinfo, which is because EOF is minus value.
|
||||
|
||||
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
|
||||
---
|
||||
libkmod/libkmod-builtin.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libkmod/libkmod-builtin.c b/libkmod/libkmod-builtin.c
|
||||
index a75a542..a002cb5 100644
|
||||
--- a/libkmod/libkmod-builtin.c
|
||||
+++ b/libkmod/libkmod-builtin.c
|
||||
@@ -313,7 +313,7 @@ ssize_t kmod_builtin_get_modinfo(struct kmod_ctx *ctx, const char *modname,
|
||||
while (offset < iter->next) {
|
||||
offset = get_string(iter, pos, &line, &linesz);
|
||||
if (offset <= 0) {
|
||||
- count = (offset) ? -errno : -EOF;
|
||||
+ count = (offset) ? -errno : -EINVAL;
|
||||
free(*modinfo);
|
||||
goto fail;
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
From 64541d6aad210879e104e4796beeef49d4311f6d Mon Sep 17 00:00:00 2001
|
||||
From: Yauheni Kaliuta <ykaliuta@redhat.com>
|
||||
Date: Tue, 8 Jun 2021 09:29:22 +0300
|
||||
Subject: [PATCH] libkmod-module: check "new_from_name" return value in
|
||||
get_builtin
|
||||
|
||||
Conflict:NA
|
||||
Reference:https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/?id=64541d6aad210879e104e4796beeef49d4311f6d
|
||||
|
||||
kmod_module_new_from_name() may fail and return error value. It is
|
||||
handled properly across the code, but in this particular place the
|
||||
check is missing.
|
||||
|
||||
Signed-off-by: Yauheni Kaliuta <ykaliuta@redhat.com>
|
||||
---
|
||||
libkmod/libkmod-module.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
|
||||
index b6320cc..6e0ff1a 100644
|
||||
--- a/libkmod/libkmod-module.c
|
||||
+++ b/libkmod/libkmod-module.c
|
||||
@@ -2912,7 +2912,10 @@ int kmod_module_get_builtin(struct kmod_ctx *ctx, struct kmod_list **list)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
- kmod_module_new_from_name(ctx, modname, &mod);
|
||||
+ err = kmod_module_new_from_name(ctx, modname, &mod);
|
||||
+ if (err < 0)
|
||||
+ goto fail;
|
||||
+
|
||||
kmod_module_set_builtin(mod, true);
|
||||
|
||||
*list = kmod_list_append(*list, mod);
|
||||
--
|
||||
2.23.0
|
||||
|
||||
15
kmod.spec
15
kmod.spec
@ -1,6 +1,6 @@
|
||||
Name: kmod
|
||||
Version: 27
|
||||
Release: 4
|
||||
Release: 5
|
||||
Summary: Kernel module management
|
||||
# GPLv2+ is used by programs, LGPLv2+ is used for libraries.
|
||||
License: GPLv2+ and LGPLv2+
|
||||
@ -15,6 +15,12 @@ Patch6002: backport-depmod-do-not-output-.bin-to-stdout.patch
|
||||
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: backport-Fix-modinfo-F-always-shows-name-for-built-ins.patch
|
||||
Patch6007: backport-libkmod-config-fix-a-memory-leak-when-kmod_list_appe.patch
|
||||
Patch6008: backport-libkmod-fix-an-overflow-with-wrong-modules.builtin.m.patch
|
||||
Patch6009: backport-libkmod-fix-possible-double-free-with-wrong-modules.patch
|
||||
Patch6010: backport-libkmod-module-check-new_from_name-return-value-in-g.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
|
||||
@ -110,6 +116,13 @@ install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d/dist.conf
|
||||
%doc TODO NEWS README
|
||||
|
||||
%changelog
|
||||
* Fri Jun 18 2021 hushiyuan <hushiyuan@huawei.com> - 27-5
|
||||
- libkmod-module: check "new_from_name" return value in get_builtin
|
||||
- libkmod:fix double free for modinfo in modules.buildin.modinfo
|
||||
- libkmod:fix an overflow with wrong modules.builtin.modinfo
|
||||
- libkmod-config:fix a memory leak when kmod_list_append failes
|
||||
- Fix "modinfo -F always shows name for build-ins"
|
||||
|
||||
* Thu Jan 14 2021 xinghe <xinghe1@huawei.com> - 27-4
|
||||
- fix memory leak in kmodinfo and build warning
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user