Messages in this thread | | | Date | Tue, 27 Apr 2004 11:21:59 +0200 | From | Jan-Benedict Glaw <> | Subject | Re: [PATCH] Blacklist binary-only modules lying about their license |
| |
On Tue, 2004-04-27 16:04:06 +1000, Rusty Russell <rusty@rustcorp.com.au> wrote in message <1083045844.2150.105.camel@bach>: > On Tue, 2004-04-27 at 14:31, Linus Torvalds wrote: > diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .31262-linux-2.6.6-rc2-bk4/include/linux/module.h .31262-linux-2.6.6-rc2-bk4.updated/include/linux/module.h > --- .31262-linux-2.6.6-rc2-bk4/include/linux/module.h 2004-04-22 08:03:55.000000000 +1000 > +++ .31262-linux-2.6.6-rc2-bk4.updated/include/linux/module.h 2004-04-27 15:52:19.000000000 +1000 > @@ -61,7 +64,14 @@ void sort_main_extable(void); > #ifdef MODULE > #define ___module_cat(a,b) __mod_ ## a ## b > #define __module_cat(a,b) ___module_cat(a,b) > +/* Some sick fucks embeded NULs in MODULE_LICENSE to circumvent checks. */ > +#define __MODULE_INFO_CHECK(info) \ > + static void __init __attribute_used__ \ > + __module_cat(__mc_,__LINE__)(void) { \ > + BUILD_BUG_ON(__builtin_strlen(info) + 1 != sizeof(info)); \ > + } > #define __MODULE_INFO(tag, name, info) \ > +__MODULE_INFO_CHECK(info); \ > static const char __module_cat(name,__LINE__)[] \ > __attribute_used__ \ > __attribute__((section(".modinfo"),unused)) = __stringify(tag) "=" info
Erm, that's a pure compile-time check, which the companies can remove. So they can still put their fucked up license string into the module, customer's kernel won't detect it.
So I'm full for embedding the supplied string's size into the module, or some compile-time generated checksum. We need something that can be checked at module load time, not at compile time, or do I misread the code?
MfG, JBG
-- Jan-Benedict Glaw jbglaw@lug-owl.de . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA)); [unhandled content-type:application/pgp-signature] | |