Commit c8e0bd57 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Petr Pavlu
Browse files

module: Put known GPL offenders in an array



Instead of repeating the add_taint_module() call for each offender, create
an array and loop over that one. This simplifies adding new entries
considerably.

Signed-off-by: default avatarUwe Kleine-König <ukleinek@kernel.org>
Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarWerner Sembach <wse@tuxedocomputers.com>
Link: https://lore.kernel.org/r/20241115185253.1299264-2-wse@tuxedocomputers.com


[ppavlu: make the array const]
Signed-off-by: default avatarPetr Pavlu <petr.pavlu@suse.com>
parent a145c848
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -2332,11 +2332,20 @@ static int rewrite_section_headers(struct load_info *info, int flags)
	return 0;
}

static const char *const module_license_offenders[] = {
	/* driverloader was caught wrongly pretending to be under GPL */
	"driverloader",

	/* lve claims to be GPL but upstream won't provide source */
	"lve",
};

/*
 * These calls taint the kernel depending certain module circumstances */
static void module_augment_kernel_taints(struct module *mod, struct load_info *info)
{
	int prev_taint = test_taint(TAINT_PROPRIETARY_MODULE);
	size_t i;

	if (!get_modinfo(info, "intree")) {
		if (!test_taint(TAINT_OOT_MODULE))
@@ -2385,15 +2394,11 @@ static void module_augment_kernel_taints(struct module *mod, struct load_info *i
	if (strcmp(mod->name, "ndiswrapper") == 0)
		add_taint(TAINT_PROPRIETARY_MODULE, LOCKDEP_NOW_UNRELIABLE);

	/* driverloader was caught wrongly pretending to be under GPL */
	if (strcmp(mod->name, "driverloader") == 0)
		add_taint_module(mod, TAINT_PROPRIETARY_MODULE,
				 LOCKDEP_NOW_UNRELIABLE);

	/* lve claims to be GPL but upstream won't provide source */
	if (strcmp(mod->name, "lve") == 0)
	for (i = 0; i < ARRAY_SIZE(module_license_offenders); ++i) {
		if (strcmp(mod->name, module_license_offenders[i]) == 0)
			add_taint_module(mod, TAINT_PROPRIETARY_MODULE,
					 LOCKDEP_NOW_UNRELIABLE);
	}

	if (!prev_taint && test_taint(TAINT_PROPRIETARY_MODULE))
		pr_warn("%s: module license taints kernel.\n", mod->name);