Thread (19 messages) 19 messages, 5 authors, 2018-10-23

Re: [PATCH v2 4/7] arm64/modules: Add rlimit checking for arm64 modules

From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
Date: 2018-10-13 06:28:39
Also in: linux-arm-kernel, linux-fsdevel, linux-mips, linux-s390, lkml, sparclinux

On Fri, 2018-10-12 at 22:01 +0000, Edgecombe, Rick P wrote:
On Fri, 2018-10-12 at 16:32 +0200, Jessica Yu wrote:
quoted
+++ Dave Hansen [11/10/18 16:47 -0700]:
quoted
On 10/11/2018 04:31 PM, Rick Edgecombe wrote:
quoted
+	if (check_inc_mod_rlimit(size))
+		return NULL;
+
 	p = __vmalloc_node_range(size, MODULE_ALIGN, module_alloc_base,
 				module_alloc_base + MODULES_VSIZE,
 				gfp_mask, PAGE_KERNEL_EXEC, 0,
@@ -65,6 +68,8 @@ void *module_alloc(unsigned long size)
 		return NULL;
 	}

+	update_mod_rlimit(p, size);
Is there a reason we couldn't just rename all of the existing per-arch
module_alloc() calls to be called, say, "arch_module_alloc()", then put
this new rlimit code in a generic helper that does:


	if (check_inc_mod_rlimit(size))
		return NULL;

	p = arch_module_alloc(...);

	...

	update_mod_rlimit(p, size);
I second this suggestion. Just make module_{alloc,memfree} generic,
non-weak functions that call the rlimit helpers in addition to the
arch-specific arch_module_{alloc,memfree} functions.

Jessica
Ok, thanks. I am going to try another version of this with just a system wide
BPF JIT limit based on the problems Jann brought up. I think it would be nice
to
have a module space limit, but as far as I know the only way today un-
privlidged 
users could fill the space is from BPF JIT. Unless you see another purpose
long
term?
Err, nevermind. Going to try to include both limits. I'll incorporate this
refactor into the next version.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help