Explorar o código

make sysctl/kernel/core_pattern and fs/exec.c agree on maximum core filename size

Make sysctl/kernel/core_pattern and fs/exec.c agree on maximum core
filename size and change it to 128, so that extensive patterns such as
'/local/cores/%e-%h-%s-%t-%p.core' won't result in truncated filename
generation.

Signed-off-by: Dan Aloni <da-x@monatomic.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Dan Aloni %!s(int64=18) %!d(string=hai) anos
pai
achega
71ce92f3fa
Modificáronse 3 ficheiros con 4 adicións e 4 borrados
  1. 1 3
      fs/exec.c
  2. 2 0
      include/linux/binfmts.h
  3. 1 1
      kernel/sysctl.c

+ 1 - 3
fs/exec.c

@@ -60,7 +60,7 @@
 #endif
 #endif
 
 
 int core_uses_pid;
 int core_uses_pid;
-char core_pattern[128] = "core";
+char core_pattern[CORENAME_MAX_SIZE] = "core";
 int suid_dumpable = 0;
 int suid_dumpable = 0;
 
 
 EXPORT_SYMBOL(suid_dumpable);
 EXPORT_SYMBOL(suid_dumpable);
@@ -1264,8 +1264,6 @@ int set_binfmt(struct linux_binfmt *new)
 
 
 EXPORT_SYMBOL(set_binfmt);
 EXPORT_SYMBOL(set_binfmt);
 
 
-#define CORENAME_MAX_SIZE 64
-
 /* format_corename will inspect the pattern parameter, and output a
 /* format_corename will inspect the pattern parameter, and output a
  * name into corename, which must have space for at least
  * name into corename, which must have space for at least
  * CORENAME_MAX_SIZE bytes plus one byte for the zero terminator.
  * CORENAME_MAX_SIZE bytes plus one byte for the zero terminator.

+ 2 - 0
include/linux/binfmts.h

@@ -17,6 +17,8 @@ struct pt_regs;
 
 
 #ifdef __KERNEL__
 #ifdef __KERNEL__
 
 
+#define CORENAME_MAX_SIZE 128
+
 /*
 /*
  * This structure is used to hold the arguments that are used when loading binaries.
  * This structure is used to hold the arguments that are used when loading binaries.
  */
  */

+ 1 - 1
kernel/sysctl.c

@@ -227,7 +227,7 @@ static ctl_table kern_table[] = {
 		.ctl_name	= KERN_CORE_PATTERN,
 		.ctl_name	= KERN_CORE_PATTERN,
 		.procname	= "core_pattern",
 		.procname	= "core_pattern",
 		.data		= core_pattern,
 		.data		= core_pattern,
-		.maxlen		= 128,
+		.maxlen		= CORENAME_MAX_SIZE,
 		.mode		= 0644,
 		.mode		= 0644,
 		.proc_handler	= &proc_dostring,
 		.proc_handler	= &proc_dostring,
 		.strategy	= &sysctl_string,
 		.strategy	= &sysctl_string,