lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 24 Apr 2014 20:24:08 +0900
From:	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
To:	Ingo Molnar <mingo@...nel.org>
Cc:	linux-kernel@...r.kernel.org,
	Rusty Russell <rusty@...tcorp.com.au>,
	Andi Kleen <andi@...stfloor.org>,
	Ananth N Mavinakayanahalli <ananth@...ibm.com>,
	Sandeepa Prabhu <sandeepa.prabhu@...aro.org>,
	Frederic Weisbecker <fweisbec@...il.com>, x86@...nel.org,
	Steven Rostedt <rostedt@...dmis.org>, fche@...hat.com,
	mingo@...hat.com, Rob Landley <rob@...dley.net>,
	"H. Peter Anvin" <hpa@...or.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	"David S. Miller" <davem@...emloft.net>, systemtap@...rceware.org
Subject: Re: [PATCH -tip v9 20/26] kprobes: Support blacklist functions in
 module

(2014/04/24 17:56), Ingo Molnar wrote:
>> diff --git a/include/linux/module.h b/include/linux/module.h
>> index f520a76..2fdb673 100644
>> --- a/include/linux/module.h
>> +++ b/include/linux/module.h
>> @@ -16,6 +16,7 @@
>>  #include <linux/kobject.h>
>>  #include <linux/moduleparam.h>
>>  #include <linux/jump_label.h>
>> +#include <linux/kprobes.h>
> 
> This include breaks the x86 build:
> 
>   CC      arch/x86/kernel/jump_label.o
>   In file included from arch/x86/kernel/jump_label.c:14:0:
>   /fast/mingo/tip/arch/x86/include/asm/kprobes.h:35:12: error: conflicting types for ‘kprobe_opcode_t' typedef u8 kprobe_opcode_t;
>   [...]

Hmm, this error seems very odd... and I don't see

> 
> But the #include kprobes.h is unnecessary to begin with, as no kprobe 
> specific types are used.

OK, anyway I'll remove that.

> 
>>  #include <linux/export.h>
>>  
>>  #include <linux/percpu.h>
>> @@ -357,6 +358,10 @@ struct module {
>>  	unsigned int num_ftrace_callsites;
>>  	unsigned long *ftrace_callsites;
>>  #endif
>> +#ifdef CONFIG_KPROBES
>> +	unsigned int num_kprobe_blacklist;
>> +	unsigned long  *kprobe_blacklist;
>> +#endif
> 
> There's a small coding style problem here.
> 
> More importantly, I think more should be done to make sure that module 
> symbols are marked properly: since the module is going to register the 
> kprobes handler, that would be a perfect place to emit a warning, 
> right?
> 
> In fact, why don't kprobe handlers get added to the exclusion list 
> explicitly, when the handler gets registered? With such an approach 
> handlers are automatically nokprobe and don't need any annotation - 
> which is a far more robust usage model.

Ah, I see. That is because there are some local functions called only
from the kprobe handlers. It is easy to blacklist the kprobe handlers
itself, but not for the functions which are only called from them. :(

So, I can add a patch which automatically add handler functions to
blacklist. But that is another story. I think this patch is also
required.

Thank you,

> 
> So I'm skipping this patch and the next one that makes use of it.
> 
> Thanks,
> 
> 	Ingo
> 


-- 
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@...achi.com


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists