Thread (26 messages) 26 messages, 9 authors, 2007-08-22

Re: [patch 3/3] mm: variable length argument support

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2007-08-07 19:21:18
Also in: linux-mm, lkml

On Tue, 7 Aug 2007 21:03:57 +0200
Olaf Hering [off-list ref] wrote:
On Wed, Jun 13, Peter Zijlstra wrote:
quoted
From: Ollie Wild <redacted>

Remove the arg+env limit of MAX_ARG_PAGES by copying the strings directly
from the old mm into the new mm.
quoted
+++ linux-2.6-2/include/linux/binfmts.h	2007-06-13 11:52:46.000000000 +0200
@@ -6,11 +6,13 @@
 struct pt_regs;
 
 /*
- * MAX_ARG_PAGES defines the number of pages allocated for arguments
- * and envelope for the new program. 32 should suffice, this gives
- * a maximum env+arg of 128kB w/4KB pages!
+ * These are the maximum length and maximum number of strings passed to the
+ * execve() system call.  MAX_ARG_STRLEN is essentially random but serves to
+ * prevent the kernel from being unduly impacted by misaddressed pointers.
+ * MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
  */
-#define MAX_ARG_PAGES 32
+#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
+#define MAX_ARG_STRINGS 0x7FFFFFFF
This adds a new usage of PAGE_SIZE to an exported header.
How can this be fixed for 2.6.23?
Put #ifdef __KERNEL__ around it?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help